mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 22:09:48 +00:00
lib: don't create circular lists (fixes 6d83113)
LISTNODE_DETACH doesn't clear out the node, and LISTNODE_ATTACH doesn't set ->next (since it assumes a fresh/zeroed listnode). As a result, the new listnode_move_to_tail() created a nice circular list, in turn crashing ospfd in ospf_write() later. Reported-by: Martin Winter <mwinter@netdef.org> Fixes: 6d83113 ("ospfd: Tweak previous iface RR write patch to avoid free/malloc & redundant log") Cc: Paul Jakma <paul@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Greg Troxel <gdt@ir.bbn.com> Acked-by: Dinesh Dutt <ddutt@cumulusnetworks.com> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com> (cherry picked from commit 1c6db0d2da34044ddfb42665fda8a3387ecc451d)
This commit is contained in:
parent
37da8fa9a2
commit
de111d75a9
@ -112,6 +112,7 @@ extern void list_add_list (struct list *, struct list *);
|
||||
#define LISTNODE_ATTACH(L,N) \
|
||||
do { \
|
||||
(N)->prev = (L)->tail; \
|
||||
(N)->next = NULL; \
|
||||
if ((L)->head == NULL) \
|
||||
(L)->head = (N); \
|
||||
else \
|
||||
|
Loading…
Reference in New Issue
Block a user