From 97f03dde1e27d07065a8886f076b8b662a9093d6 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 30 Oct 2017 19:41:28 -0400 Subject: [PATCH] pimd: Fix crash with debug and ifp changes Certain interface flapping events can cause a lookup that does not find any ifp pointer. This is only causing a crash in the `debug pim zebra` command due to only needing to lookup the interface for it's name. Modify code to ensure we have a valid pointer. Follow other debug statements lead in the same function for what to display when an interface does not currently exist. Signed-off-by: Donald Sharp --- pimd/pim_zebra.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index bee6521b6c..04466258bb 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -599,7 +599,9 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index) zlog_debug( "%s %s: (S,G)=(%s,%s) input interface changed from %s vif_index=%d to %s vif_index=%d", __FILE__, __PRETTY_FUNCTION__, source_str, group_str, - old_iif->name, c_oil->oil.mfcc_parent, new_iif->name, + (old_iif) ? old_iif->name : "", + c_oil->oil.mfcc_parent, + (new_iif) ? new_iif->name : "", input_iface_vif_index); } @@ -618,7 +620,8 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index) zlog_debug( "%s %s: (S,G)=(%s,%s) new iif loops to existing oif: %s vif_index=%d", __FILE__, __PRETTY_FUNCTION__, source_str, - group_str, new_iif->name, + group_str, + (new_iif) ? new_iif->name : "", input_iface_vif_index); } } -- 2.39.5