]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes a bug in kernel extended attribute processing.
authorOndrej Zajicek <santiago@crfreenet.org>
Tue, 10 Sep 2013 11:01:22 +0000 (13:01 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Tue, 10 Sep 2013 11:01:22 +0000 (13:01 +0200)
The bug caused that krt_prefsrc attribute was not processed when a route
received from a kernel protocol was exported to another kernel protocol.

Thanks to Sergey Popovich for a bugreport.

sysdep/unix/krt.c

index 54297921c7c2dcad7d5f541014ca780a84dda962..6de6077eb5791ab17460796c3839f13e0c9da342 100644 (file)
@@ -730,6 +730,13 @@ krt_prune(struct krt_proto *p)
              /* Route rejected, should not happen (KRF_INSTALLED) but to be sure .. */
              verdict = (verdict == KRF_CREATE) ? KRF_IGNORE : KRF_DELETE; 
            }
+         else
+           {
+             ea_list **x = &tmpa;
+             while (*x)
+               x = &((*x)->next);
+             *x = new ? new->attrs->eattrs : NULL;
+           }
        }
 
       switch (verdict)