]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_neighbor.c
zebra: Allow ns delete to happen after under/over flow checks
[mirror_frr.git] / pimd / pim_neighbor.c
index 2730f5e7aa36c86095966703b54ac346f0a558b4..f402629653ca6ce9c7ab0811029fc69c7a84eb36 100644 (file)
@@ -25,6 +25,7 @@
 #include "if.h"
 #include "vty.h"
 #include "plist.h"
+#include "lib_errors.h"
 
 #include "pimd.h"
 #include "pim_neighbor.h"
@@ -396,7 +397,7 @@ static void delete_prefix_list(struct pim_neighbor *neigh)
                }
 #endif
 
-               list_delete_and_null(&neigh->prefix_list);
+               list_delete(&neigh->prefix_list);
        }
 }
 
@@ -406,9 +407,12 @@ void pim_neighbor_free(struct pim_neighbor *neigh)
 
        delete_prefix_list(neigh);
 
-       list_delete_and_null(&neigh->upstream_jp_agg);
+       list_delete(&neigh->upstream_jp_agg);
        THREAD_OFF(neigh->jp_timer);
 
+       if (neigh->bfd_info)
+               pim_bfd_info_free(&neigh->bfd_info);
+
        XFREE(MTYPE_PIM_NEIGHBOR, neigh);
 }
 
@@ -796,7 +800,8 @@ void pim_neighbor_update(struct pim_neighbor *neigh,
 
        if (neigh->prefix_list == addr_list) {
                if (addr_list) {
-                       zlog_err(
+                       flog_err(
+                               EC_LIB_DEVELOPMENT,
                                "%s: internal error: trying to replace same prefix list=%p",
                                __PRETTY_FUNCTION__, (void *)addr_list);
                }