From 98573e196c0d15c8f753a13327066a62bde77dcd Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sun, 11 Dec 2016 19:28:08 -0500 Subject: [PATCH] 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 --- pimd/pim_ifchannel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); -- 2.39.5