summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-05-22 15:16:53 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2009-05-22 15:16:53 +0200
commitd72a0ac2396471ffb2b3a580ee986f950e4d23ae (patch)
treeba5231c4fe5b79c1bfbf26e53988029331af035f
parent80f0d6764aa2c54eabdc1b41321a46e8cbcce2b9 (diff)
downloadbird-d72a0ac2396471ffb2b3a580ee986f950e4d23ae.tar
bird-d72a0ac2396471ffb2b3a580ee986f950e4d23ae.zip
Fixes serious bug in route attribute handing.
ea_same() sometimes returns true for different route attributes, which caused that hash table in BGP does not work correctly and some routes were sent with different attributes.
-rw-r--r--nest/rt-attr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index e79cba1..2318f80 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -310,7 +310,7 @@ ea_same(ea_list *x, ea_list *y)
a->flags != b->flags ||
a->type != b->type ||
((a->type & EAF_EMBEDDED) ? a->u.data != b->u.data :
- (a->u.ptr->length != b->u.ptr->length || memcmp(a->u.ptr, b->u.ptr, a->u.ptr->length))))
+ (a->u.ptr->length != b->u.ptr->length || memcmp(a->u.ptr->data, b->u.ptr->data, a->u.ptr->length))))
return 0;
}
return 1;