From 650937559cf2be4fde48267204ff377b241aa0dd Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 1 Feb 2017 20:36:44 -0500 Subject: [PATCH] ripd: Prevent rip null dereference When rip is NULL, we dereference it anyways. Signed-off-by: Donald Sharp --- ripd/rip_interface.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c index 9f8b279eb8..772ba49f93 100644 --- a/ripd/rip_interface.c +++ b/ripd/rip_interface.c @@ -585,24 +585,26 @@ rip_if_down(struct interface *ifp) struct list *list = NULL; struct listnode *listnode = NULL, *nextnode = NULL; if (rip) - for (rp = route_top (rip->table); rp; rp = route_next (rp)) - if ((list = rp->info) != NULL) - for (ALL_LIST_ELEMENTS (list, listnode, nextnode, rinfo)) - if (rinfo->ifindex == ifp->ifindex) - rip_ecmp_delete (rinfo); + { + for (rp = route_top (rip->table); rp; rp = route_next (rp)) + if ((list = rp->info) != NULL) + for (ALL_LIST_ELEMENTS (list, listnode, nextnode, rinfo)) + if (rinfo->ifindex == ifp->ifindex) + rip_ecmp_delete (rinfo); - ri = ifp->info; + ri = ifp->info; - if (ri->running) - { - if (IS_RIP_DEBUG_EVENT) - zlog_debug ("turn off %s", ifp->name); + if (ri->running) + { + if (IS_RIP_DEBUG_EVENT) + zlog_debug ("turn off %s", ifp->name); - /* Leave from multicast group. */ - rip_multicast_leave (ifp, rip->sock); + /* Leave from multicast group. */ + rip_multicast_leave (ifp, rip->sock); - ri->running = 0; - } + ri->running = 0; + } + } return 0; } -- 2.39.5