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 <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2016-11-08 19:40:08 -05:00
parent 5349cf9a09
commit 53e39e140d
3 changed files with 3 additions and 1 deletions

View File

@ -241,6 +241,7 @@ int pim_assert_recv(struct interface *ifp,
/* /*
Parse assert group addr Parse assert group addr
*/ */
memset (&sg, 0, sizeof (struct prefix_sg));
offset = pim_parse_addr_group (&sg, curr, curr_size); offset = pim_parse_addr_group (&sg, curr, curr_size);
if (offset < 1) { if (offset < 1) {
char src_str[INET_ADDRSTRLEN]; char src_str[INET_ADDRSTRLEN];

View File

@ -293,6 +293,7 @@ int pim_joinprune_recv(struct interface *ifp,
uint16_t msg_num_pruned_sources; uint16_t msg_num_pruned_sources;
int source; int source;
memset (&sg, 0, sizeof (struct prefix_sg));
addr_offset = pim_parse_addr_group (&sg, addr_offset = pim_parse_addr_group (&sg,
buf, pastend - buf); buf, pastend - buf);
if (addr_offset < 1) { if (addr_offset < 1) {

View File

@ -105,11 +105,11 @@ pim_register_stop_recv (uint8_t *buf, int buf_size)
struct prefix_sg sg; struct prefix_sg sg;
int l; int l;
memset (&sg, 0, sizeof (struct prefix_sg));
l = pim_parse_addr_group (&sg, buf, buf_size); l = pim_parse_addr_group (&sg, buf, buf_size);
buf += l; buf += l;
buf_size -= l; buf_size -= l;
pim_parse_addr_ucast (&source, buf, buf_size); pim_parse_addr_ucast (&source, buf, buf_size);
memset (&sg, 0, sizeof (struct prefix_sg));
sg.src = source.u.prefix4; sg.src = source.u.prefix4;
if (PIM_DEBUG_PIM_REG) if (PIM_DEBUG_PIM_REG)