]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Fix dest dereference 1584/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 2 Jan 2018 14:09:09 +0000 (09:09 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 2 Jan 2018 14:12:07 +0000 (09:12 -0500)
The rn can not have an rn->info pointer and as
such the dest may be NULL.  Don't assign
the old_fib pointer if so.  This is ok
because we know RNODE_FOREACH... will not
iterate if dest is NULL.

Fixes: #1575
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/zebra_rib.c

index 3eaf5597b2d4f1f1db3a874628d5be72700d1882..83834899c87d3a6be55dbdcc439f3505c2811e51 100644 (file)
@@ -1471,7 +1471,14 @@ static void rib_process(struct route_node *rn)
        if (IS_ZEBRA_DEBUG_RIB_DETAILED)
                zlog_debug("%u:%s: Processing rn %p", vrf_id, buf, rn);
 
-       old_fib = dest->selected_fib;
+       /*
+        * we can have rn's that have a NULL info pointer
+        * (dest).  As such let's not let the deref happen
+        * additionally we know RNODE_FOREACH_RE_SAFE
+        * will not iterate so we are ok.
+        */
+       if (dest)
+               old_fib = dest->selected_fib;
 
        RNODE_FOREACH_RE_SAFE (rn, re, next) {
                if (IS_ZEBRA_DEBUG_RIB_DETAILED)