From de6cb3a9f2d8b323d759ab70a81acac2f73d2d77 Mon Sep 17 00:00:00 2001
From: Dumitru Ceara <dceara@redhat.com>
Date: Fri, 5 Mar 2021 21:29:24 +0100
Subject: [PATCH 2/2] binding: Fix potential NULL dereference of lbinding.
There is a valid code path that can lead to 'lbinding' being NULL in
handle_deleted_vif_lport(). Make sure we check for it.
Found by code inspection.
Fixes: 68cf9fdceba8 ("binding: Fix container port removal from local bindings.")
Signed-off-by: Dumitru Ceara <dceara@redhat.com>
Signed-off-by: Numan Siddique <numans@ovn.org>
(cherry-picked from master commit 80a9a8e834829a80af2ee329fc69a1314fb5079b)
---
controller/binding.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/controller/binding.c b/controller/binding.c
index 2b19fd0e9..4e6c75696 100644
--- a/controller/binding.c
+++ b/controller/binding.c
@@ -2153,10 +2153,12 @@ handle_deleted_vif_lport(const struct sbrec_port_binding *pb,
/* If the container port is removed we should also remove it from
* its parent's children set.
*/
- if (lbinding->parent) {
- local_binding_delete_child(lbinding->parent, lbinding);
+ if (lbinding) {
+ if (lbinding->parent) {
+ local_binding_delete_child(lbinding->parent, lbinding);
+ }
+ local_binding_destroy(lbinding);
}
- local_binding_destroy(lbinding);
}
handle_deleted_lport(pb, b_ctx_in, b_ctx_out);
--
2.29.2