From: Donald Sharp Date: Mon, 12 Dec 2016 00:28:08 +0000 (-0500) Subject: pimd: Cleanup uninitialized memory access X-Git-Tag: frr-3.0-branchpoint~60^2~3 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=98573e196c0d15c8f753a13327066a62bde77dcd;p=matthieu%2Ffrr.git pimd: Cleanup uninitialized memory access Valgrind noticed that we have a read of uninitialized memory: Conditional jump or move depends on uninitialised value(s) ==13749== at 0x428067: pim_ifassert_winner_set (pim_assert.c:57) ==13749== by 0x4266F0: pim_ifchannel_add (pim_ifchannel.c:535) ==13749== by 0x426CC1: pim_ifchannel_join_add (pim_ifchannel.c:730) ==13749== by 0x427B5B: recv_join (pim_join.c:95) ==13749== by 0x427B5B: pim_joinprune_recv (pim_join.c:270) ==13749== by 0x42354F: pim_pim_packet (pim_pim.c:249) ==13749== by 0x4236C0: pim_sock_read (pim_pim.c:349) ==13749== by 0x4E60587: thread_call (thread.c:1462) ==13749== by 0x40C75E: main (pim_main.c:266) ==13749== This commit fixes that issue. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 7056ade501..0c0c2c4043 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -496,7 +496,7 @@ pim_ifchannel_add(struct interface *ifp, return NULL; } - ch = XMALLOC(MTYPE_PIM_IFCHANNEL, sizeof(*ch)); + ch = XCALLOC(MTYPE_PIM_IFCHANNEL, sizeof(*ch)); if (!ch) { zlog_warn("%s: pim_ifchannel_new() failure for (S,G)=%s on interface %s", __PRETTY_FUNCTION__, @@ -535,6 +535,7 @@ pim_ifchannel_add(struct interface *ifp, /* Assert state */ ch->t_ifassert_timer = NULL; + ch->ifassert_state = PIM_IFASSERT_NOINFO; reset_ifassert_state(ch); if (pim_macro_ch_could_assert_eval(ch)) PIM_IF_FLAG_SET_COULD_ASSERT(ch->flags);