]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: bgp_connected_delete needs to ensure dest is still there
authorDonald Sharp <sharpd@nvidia.com>
Sun, 10 Sep 2023 13:22:47 +0000 (09:22 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 11 Sep 2023 16:45:59 +0000 (12:45 -0400)
Again coverity believes that dest could be freed by a call
into bgp_dest_unlock_node, and it can if the lock count
is wrong.  Let's fix that assumption for coverity

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_nexthop.c

index 6cb6d65c64b5c83e78672f8e140aecba60319845..367c7056fde6cf5ec66026129a8f5be6c81d118a 100644 (file)
@@ -483,7 +483,9 @@ void bgp_connected_delete(struct bgp *bgp, struct connected *ifc)
                XFREE(MTYPE_BGP_CONN, bc);
                bgp_dest_set_bgp_connected_ref_info(dest, NULL);
        }
-       bgp_dest_unlock_node(dest);
+
+       dest = bgp_dest_unlock_node(dest);
+       assert(dest);
        bgp_dest_unlock_node(dest);
 }