]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: call filter delete hook before freeing access list
authorStephen Hemminger <shemminger@vyatta.com>
Tue, 6 Dec 2011 10:04:12 +0000 (14:04 +0400)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 2 Jan 2012 13:14:17 +0000 (17:14 +0400)
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

lib/filter.c

index af8d587ff32193595af544a0e53c92538333f25b..69341824224d55f352a7ed373e3c15cc62334fad 100644 (file)
@@ -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;
 }