]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: bgp_static_delete ensure rm and dest exist
authorDonald Sharp <sharpd@nvidia.com>
Sun, 10 Sep 2023 13:42:06 +0000 (09:42 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 11 Sep 2023 16:45:59 +0000 (12:45 -0400)
Ensure that the rm and dest exist since the code
has them locked to loop over them safely.

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

index 5189b3643cb34ca75580b844205c4851437af9b3..80498bc0d79a7949cab0a2e97271bbd781502e57 100644 (file)
@@ -6891,7 +6891,8 @@ void bgp_static_delete(struct bgp *bgp)
                                        bgp_static_free(bgp_static);
                                        bgp_dest_set_bgp_static_info(rm,
                                                                     NULL);
-                                       bgp_dest_unlock_node(rm);
+                                       rm = bgp_dest_unlock_node(rm);
+                                       assert(rm);
                                }
                        } else {
                                bgp_static = bgp_dest_get_bgp_static_info(dest);
@@ -6900,7 +6901,8 @@ void bgp_static_delete(struct bgp *bgp)
                                                    afi, safi, NULL);
                                bgp_static_free(bgp_static);
                                bgp_dest_set_bgp_static_info(dest, NULL);
-                               bgp_dest_unlock_node(dest);
+                               dest = bgp_dest_unlock_node(dest);
+                               assert(dest);
                        }
                }
 }