]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Fix intentional pass of NULL
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 22 May 2017 18:52:18 +0000 (14:52 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:37 +0000 (13:51 -0400)
pim_msdp_pkt_sa_gen is intentionally passed mp as NULL
in some cases, so we need to pass through the pim instance

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_msdp_packet.c

index 8f93e65715a7a8811f11b18d95185a06c2fa0716..f9e68bffe8f6836b60acbca5b5897b7af8d98a3f 100644 (file)
@@ -370,21 +370,22 @@ static void pim_msdp_pkt_sa_fill_one(struct pim_msdp_sa *sa)
        stream_put_ipv4(sa->pim->msdp.work_obuf, sa->sg.src.s_addr);
 }
 
-static void pim_msdp_pkt_sa_gen(struct pim_msdp_peer *mp)
+static void pim_msdp_pkt_sa_gen(struct pim_instance *pim,
+                               struct pim_msdp_peer *mp)
 {
        struct listnode *sanode;
        struct pim_msdp_sa *sa;
        int sa_count;
-       int local_cnt = mp->pim->msdp.local_cnt;
+       int local_cnt = pim->msdp.local_cnt;
 
        sa_count = 0;
        if (PIM_DEBUG_MSDP_INTERNAL) {
                zlog_debug("  sa gen  %d", local_cnt);
        }
 
-       local_cnt = pim_msdp_pkt_sa_fill_hdr(mp->pim, local_cnt);
+       local_cnt = pim_msdp_pkt_sa_fill_hdr(pim, local_cnt);
 
-       for (ALL_LIST_ELEMENTS_RO(mp->pim->msdp.sa_list, sanode, sa)) {
+       for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) {
                if (!(sa->flags & PIM_MSDP_SAF_LOCAL)) {
                        /* current implementation of MSDP is for anycast i.e.
                         * full mesh. so
@@ -403,8 +404,7 @@ static void pim_msdp_pkt_sa_gen(struct pim_msdp_peer *mp)
                                zlog_debug("  sa gen for remainder %d",
                                           local_cnt);
                        }
-                       local_cnt =
-                               pim_msdp_pkt_sa_fill_hdr(mp->pim, local_cnt);
+                       local_cnt = pim_msdp_pkt_sa_fill_hdr(pim, local_cnt);
                }
        }
 
@@ -431,7 +431,7 @@ static void pim_msdp_pkt_sa_tx_done(struct pim_instance *pim)
 
 void pim_msdp_pkt_sa_tx(struct pim_instance *pim)
 {
-       pim_msdp_pkt_sa_gen(NULL /* mp */);
+       pim_msdp_pkt_sa_gen(pim, NULL /* mp */);
        pim_msdp_pkt_sa_tx_done(pim);
 }
 
@@ -446,7 +446,7 @@ void pim_msdp_pkt_sa_tx_one(struct pim_msdp_sa *sa)
 /* when a connection is first established we push all SAs immediately */
 void pim_msdp_pkt_sa_tx_to_one_peer(struct pim_msdp_peer *mp)
 {
-       pim_msdp_pkt_sa_gen(mp);
+       pim_msdp_pkt_sa_gen(mp->pim, mp);
        pim_msdp_pkt_sa_tx_done(mp->pim);
 }