]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_neighbor.c
Merge pull request #5288 from SumitAgarwal123/bfd_docs
[mirror_frr.git] / pimd / pim_neighbor.c
index 436f2dec277e723e1fc748546289e61c688b7789..3f2aaf2bbed0ee210d8a94a8eca1859fdc5ef8ca 100644 (file)
@@ -424,10 +424,11 @@ struct pim_neighbor *pim_neighbor_find_by_secondary(struct interface *ifp,
        struct pim_neighbor *neigh;
        struct prefix *p;
 
-       pim_ifp = ifp->info;
-       if (!pim_ifp)
+       if (!ifp || !ifp->info)
                return NULL;
 
+       pim_ifp = ifp->info;
+
        for (ALL_LIST_ELEMENTS_RO(pim_ifp->pim_neighbor_list, node, neigh)) {
                for (ALL_LIST_ELEMENTS_RO(neigh->prefix_list, pnode, p)) {
                        if (prefix_same(p, src))
@@ -540,7 +541,7 @@ pim_neighbor_add(struct interface *ifp, struct in_addr source_addr,
           Upon PIM neighbor UP, iterate all RPs and update
           nexthop cache with this neighbor.
         */
-       pim_resolve_rp_nh(pim_ifp->pim);
+       pim_resolve_rp_nh(pim_ifp->pim, neigh);
 
        pim_rp_setup(pim_ifp->pim);
 
@@ -766,7 +767,7 @@ static void delete_from_neigh_addr(struct interface *ifp,
                                                other_neigh_str, ifp->name);
 
                                        listnode_delete(neigh->prefix_list, p);
-                                       prefix_free(p);
+                                       prefix_free(&p);
                                }
                        }