From: Donald Sharp Date: Thu, 2 Feb 2017 01:36:44 +0000 (-0500) Subject: ripd: Prevent rip null dereference X-Git-Tag: frr-3.0-branchpoint~51^2~3 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=650937559cf2be4fde48267204ff377b241aa0dd;p=matthieu%2Ffrr.git ripd: Prevent rip null dereference When rip is NULL, we dereference it anyways. Signed-off-by: Donald Sharp --- 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; }