From: Donald Sharp Date: Wed, 9 Nov 2016 00:40:08 +0000 (-0500) Subject: pimd: Ensure 'struct prefix sg' is inited in right order X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~115 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=53e39e140d288e429f3c2c73db056a5bc4ac4659;p=mirror%2Ffrr.git pimd: Ensure 'struct prefix sg' is inited in right order 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 --- diff --git a/pimd/pim_assert.c b/pimd/pim_assert.c index ca21786aea..29a241b277 100644 --- a/pimd/pim_assert.c +++ b/pimd/pim_assert.c @@ -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]; diff --git a/pimd/pim_join.c b/pimd/pim_join.c index 8ef2cada87..53c91ab4af 100644 --- a/pimd/pim_join.c +++ b/pimd/pim_join.c @@ -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) { diff --git a/pimd/pim_register.c b/pimd/pim_register.c index 229232fde4..e012115e37 100644 --- a/pimd/pim_register.c +++ b/pimd/pim_register.c @@ -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)