From 2a0130f94d2304e316f0ffad8e52fce094559782 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Tue, 10 Sep 2013 13:01:22 +0200 Subject: [PATCH] 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. --- sysdep/unix/krt.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 54297921..6de6077e 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)