diff options
author | Don Slice <dslice@cumulusnetworks.com> | 2016-06-27 13:34:32 +0200 |
---|---|---|
committer | Don Slice <dslice@cumulusnetworks.com> | 2016-06-28 13:52:38 +0200 |
commit | 3f6d6a5db80fd465e15383ee96867153578fc316 (patch) | |
tree | 24309bf26544f8828d22707362df4a7270f56e14 /lib/if.c | |
parent | pimd: Fix register receive pointer arithmetic (diff) | |
download | frr-3f6d6a5db80fd465e15383ee96867153578fc316.tar.xz frr-3f6d6a5db80fd465e15383ee96867153578fc316.zip |
zebra/ospf/ospf6: Fix several memory leaks on if up/down
Resolved several memory leaks caused by ifdown/ifup the vrf device or
a swp port. For bgp/zebra/ospf/ospf6, bouncing the vrf device would cause
a linked list, Interface, and route-table to get leaked. For ospf6,
bouncing the swp device also caused leaks of Connected and Prefix entries.
Ticket: CM-10841
Signed-off-by: Don Slice
Reviewed-By: Donald Sharp
Testing Done: Manual testing, bgp and ospf mins passed, smokes had fewer failures than base
Diffstat (limited to 'lib/if.c')
-rw-r--r-- | lib/if.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -1292,6 +1292,12 @@ if_terminate (struct list **intf_list) if (ifp == NULL) break; + if (ifp->node) + { + ifp->node->info = NULL; + route_unlock_node (ifp->node); + } + if_delete (ifp); } |