]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Ensure 'struct prefix sg' is inited in right order
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 9 Nov 2016 00:40:08 +0000 (19:40 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:14 +0000 (20:26 -0500)
When we called pim_parse_addr_group, don't reinitialize
the 'struct prefix_sg' *after* we've parsed the group.

Ensure in other places that we do this work, we initialize
prior as well.

Ticket: CM-13510
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_assert.c
pimd/pim_join.c
pimd/pim_register.c

index ca21786aea81fdeb53b95753f8a6be9d73eb24fe..29a241b277d64766dbd1a13a04b86bf86bc0b684 100644 (file)
@@ -241,6 +241,7 @@ int pim_assert_recv(struct interface *ifp,
   /*
     Parse assert group addr
    */
+  memset (&sg, 0, sizeof (struct prefix_sg));
   offset = pim_parse_addr_group (&sg, curr, curr_size);
   if (offset < 1) {
     char src_str[INET_ADDRSTRLEN];
index 8ef2cada874063caed222357de293b55a6db111f..53c91ab4afbdc50245d107892e5ab41b800ef2cb 100644 (file)
@@ -293,6 +293,7 @@ int pim_joinprune_recv(struct interface *ifp,
     uint16_t      msg_num_pruned_sources;
     int           source;
 
+    memset (&sg, 0, sizeof (struct prefix_sg));
     addr_offset = pim_parse_addr_group (&sg,
                                        buf, pastend - buf);
     if (addr_offset < 1) {
index 229232fde48dd8eb2c670d484c44196b7ea00b58..e012115e3788f5f5aeda407884b685bb85718d94 100644 (file)
@@ -105,11 +105,11 @@ pim_register_stop_recv (uint8_t *buf, int buf_size)
   struct prefix_sg sg;
   int l;
 
+  memset (&sg, 0, sizeof (struct prefix_sg));
   l = pim_parse_addr_group (&sg, buf, buf_size);
   buf += l;
   buf_size -= l;
   pim_parse_addr_ucast (&source, buf, buf_size);
-  memset (&sg, 0, sizeof (struct prefix_sg));
   sg.src = source.u.prefix4;
 
   if (PIM_DEBUG_PIM_REG)