lib: Prevent crash after shutdown request

Recent commit e92508a741 changed
the prefix_master->str to a RB tree.  This introduced a condition
whnere on shutdown the prefix list was removed from the master list
and then operated on by passing around a name.  Which was then used
to lookup the prefix list again when we operated on the code.
This change to a RB Tree first deleted the item from the RB tree
first thus introducing this crash

Crash:
(gdb) bt
    index=0x556c07d59650, pentry=0x556c07d29380) at lib/routemap.c:2397
    arg=0x7ffdbf84bc60) at lib/hash.c:267
    event=RMAP_EVENT_PLIST_DELETED) at lib/routemap.c:2489

Grab the first item on the list, clean it and then remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
Donald Sharp 2022-04-19 14:48:29 -04:00
parent 16b5065b47
commit 10258b031a

View File

@ -1568,8 +1568,10 @@ static void prefix_list_reset_afi(afi_t afi, int orf)
if (master == NULL)
return;
while ((plist = plist_pop(&master->str)))
while ((plist = plist_first(&master->str))) {
prefix_list_delete(plist);
plist_pop(&master->str);
}
master->recent = NULL;
}