From 2dd04c5dc8b5a09cce1c251361fa58f26398fd9f Mon Sep 17 00:00:00 2001 From: Josh Bailey Date: Wed, 21 Mar 2012 10:37:03 -0700 Subject: lib: Tweak to if_delete_retain() * lib/if.c: Change if_delete_retain() to delete all connected addresses, but to not free the list that holds them. Free the list just before the interface structure itself is freed, in if_delete(). --- lib/if.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/if.c') diff --git a/lib/if.c b/lib/if.c index 86f754b6..e9ef50b7 100644 --- a/lib/if.c +++ b/lib/if.c @@ -146,7 +146,7 @@ if_delete_retain (struct interface *ifp) (*if_master.if_delete_hook) (ifp); /* Free connected address list */ - list_delete (ifp->connected); + list_delete_all_node (ifp->connected); } /* Delete and free interface structure. */ @@ -157,6 +157,8 @@ if_delete (struct interface *ifp) if_delete_retain(ifp); + list_free (ifp->connected); + XFREE (MTYPE_IF, ifp); } -- cgit v1.2.1