From 0e70e6c89d69976cde1b79bba6ac23d233b19566 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sat, 18 Aug 2018 04:47:27 +0200 Subject: lib/bgpd: re-fix bgp_info_extra_free() Make the wart slightly less bad... also there is still a possible write after free here. This needs to be fixed again, properly, by some structure changes. Signed-off-by: David Lamparter --- lib/table.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'lib/table.h') diff --git a/lib/table.h b/lib/table.h index ac7df3e695..8304abe59b 100644 --- a/lib/table.h +++ b/lib/table.h @@ -235,17 +235,13 @@ static inline struct route_node *route_lock_node(struct route_node *node) } /* Unlock node. */ -static inline struct route_node *route_unlock_node(struct route_node *node) +static inline void route_unlock_node(struct route_node *node) { assert(node->lock > 0); (*(unsigned *)&node->lock)--; - if (node->lock == 0) { + if (node->lock == 0) route_node_delete(node); - return NULL; - } - - return node; } /* -- cgit v1.2.3