]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes bug in pipe feeding when filtered routes are kept in table
authorOndrej Zajicek <santiago@crfreenet.org>
Sun, 31 May 2015 09:29:53 +0000 (11:29 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Mon, 8 Jun 2015 00:24:08 +0000 (02:24 +0200)
nest/rt-table.c

index d5af41c76746e2f17609957c1ea40c31024a64cf..27c6cb7626c90d944042973e53ae88e37cfe699c 100644 (file)
@@ -1816,15 +1816,20 @@ again:
          {
            if (p->export_state != ES_FEEDING)
              return 1;  /* In the meantime, the protocol fell down. */
+
            do_feed_baby(p, p->accept_ra_types, h, n, e);
            max_feed--;
          }
 
       if (p->accept_ra_types == RA_ANY)
-       for(e = n->routes; rte_is_valid(e); e = e->next)
+       for(e = n->routes; e; e = e->next)
          {
            if (p->export_state != ES_FEEDING)
              return 1;  /* In the meantime, the protocol fell down. */
+
+           if (!rte_is_valid(e))
+             continue;
+
            do_feed_baby(p, RA_ANY, h, n, e);
            max_feed--;
          }