From: Stephen Hemminger Date: Tue, 6 Dec 2011 10:04:12 +0000 (+0400) Subject: lib: call filter delete hook before freeing access list X-Git-Tag: frr-2.0-rc1~1987 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=6a2e0f36b103386e57dbe3a6ee4716e809111198;p=mirror%2Ffrr.git lib: call filter delete hook before freeing access list The delete_hook was being run after calling access list delete function. This would cause ospf to dereference a NULL, in ospf_filter_update because 'access->name' was already freed. See also: https://bugzilla.vyatta.com/show_bug.cgi?id=7654 --- diff --git a/lib/filter.c b/lib/filter.c index af8d587ff3..6934182422 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -1337,13 +1337,13 @@ DEFUN (no_access_list_all, master = access->master; - /* Delete all filter from access-list. */ - access_list_delete (access); - /* Run hook function. */ if (master->delete_hook) (*master->delete_hook) (access); + /* Delete all filter from access-list. */ + access_list_delete (access); + return CMD_SUCCESS; } @@ -1508,13 +1508,13 @@ DEFUN (no_ipv6_access_list_all, master = access->master; - /* Delete all filter from access-list. */ - access_list_delete (access); - /* Run hook function. */ if (master->delete_hook) (*master->delete_hook) (access); + /* Delete all filter from access-list. */ + access_list_delete (access); + return CMD_SUCCESS; }