Coverity Scan #1221454
In zebra/interface.c if_data could be null dereferenced without early
check. Added if/else block to catch the problem before errors.

Signed-off-by: Morgan Stewart <[email protected]>
---
 zebra/interface.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/zebra/interface.c b/zebra/interface.c
index 14c3e78..b4ac9ad 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -368,10 +368,15 @@ if_add_update (struct interface *ifp)
   struct zebra_if *if_data;
 
   if_data = ifp->info;
-  if (if_data->multicast == IF_ZEBRA_MULTICAST_ON)
-    if_set_flags (ifp, IFF_MULTICAST);
-  else if (if_data->multicast == IF_ZEBRA_MULTICAST_OFF)
-    if_unset_flags (ifp, IFF_MULTICAST);
+  if (if_data)
+    {
+      if (if_data->multicast == IF_ZEBRA_MULTICAST_ON)
+        if_set_flags (ifp, IFF_MULTICAST);
+      else if (if_data->multicast == IF_ZEBRA_MULTICAST_OFF)
+        if_unset_flags (ifp, IFF_MULTICAST);
+    }
+  else
+    zlog_debug("Interface %s without info pointer, probably not a sane 
state.", ifp->name);
 
   zebra_interface_add_update (ifp);
 
-- 
1.9.1


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to