summaryrefslogtreecommitdiff
path: root/sysdep/unix/krt.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-09-10 13:01:22 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2013-09-10 13:01:22 +0200
commit2a0130f94d2304e316f0ffad8e52fce094559782 (patch)
tree15562d887aed4b7aa2ffb2da6f65ea6d22c6a30c /sysdep/unix/krt.c
parent507e182a60c3704f8a28a0450f1affc2c7c1b66a (diff)
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.
Diffstat (limited to 'sysdep/unix/krt.c')
-rw-r--r--sysdep/unix/krt.c7
1 files changed, 7 insertions, 0 deletions
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)