From: Ondrej Zajicek Date: Tue, 10 Sep 2013 11:01:22 +0000 (+0200) Subject: Fixes a bug in kernel extended attribute processing. X-Git-Tag: v1.4.0~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a0130f94d2304e316f0ffad8e52fce094559782;p=thirdparty%2Fbird.git Fixes a bug in kernel extended attribute processing. 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. --- diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 54297921c..6de6077eb 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -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)