]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_vrf.c
zebra: fix segfault on exit when RIB debugging is enabled
authorRenato Westphal <renato@opensourcerouting.org>
Thu, 8 Dec 2016 19:36:03 +0000 (17:36 -0200)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 14 Dec 2016 18:21:08 +0000 (13:21 -0500)
commit0f12455901fa5d424c28b4af854f6b78e54bafd3
tree4ca6c84a0c0ebabc24571d3be925f18be81896f0
parent74d263466b962e0a867e2ca6302a1cd927d436bf
zebra: fix segfault on exit when RIB debugging is enabled

Fixes the following crash on exit:
(gdb) bt
0  _rnode_zlog (...) at zebra_rib.c:104
1  0x0000000000417726 in rib_unlink (...) at zebra_rib.c:2370
2  0x000000000042db80 in zebra_rtable_node_destroy (...) at zebra_vrf.c:336
3  0x00007ffff7b6ce2e in route_node_free (...) at table.c:81
4  0x00007ffff7b6ced7 in route_table_free (...) at table.c:118
5  0x00007ffff7b6cd88 in route_table_finish (...) at table.c:53
6  0x000000000042defa in zebra_vrf_delete (...) at zebra_vrf.c:278
7  0x00007ffff7b9e044 in vrf_delete (...) at vrf.c:162
8  0x00007ffff7b9e89f in vrf_terminate () at vrf.c:458
9  0x000000000041027c in sigint () at main.c:205
10 0x00007ffff7b953f2 in quagga_sigevent_process () at sigevent.c:111
11 0x00007ffff7b681dd in thread_fetch (...) at thread.c:1297
12 0x000000000040c7ed in main (...) at main.c:471

To fix the problem, free the table->info pointer only after
route_table_finish() is called for the table.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
zebra/zebra_vrf.c