From 1f742f21a98f756cea03856849fa2f82f467baf7 Mon Sep 17 00:00:00 2001 From: Paul Jakma Date: Sun, 6 Aug 2006 15:52:11 +0000 Subject: [bgpd] aspath_loop_check was broken, fix it and the aspath unit test code. 2006-08-06 Paul Jakma * bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which essentially had disabled this check. Problem reported by Bartek Kania in [quagga-users 7388]. * aspath_test.c: (validate) Fix the sense of the aspath_loop_check, which was the wrong way around and had actually been testing for aspath_loop_check to be buggy. --- bgpd/ChangeLog | 6 ++++++ bgpd/bgp_aspath.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'bgpd') diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 90d0e0e3..99960aef 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,9 @@ +2006-08-06 Paul Jakma + + * bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which + essentially had disabled this check. Problem reported by + Bartek Kania in [quagga-users 7388]. + 2006-07-27 Paul Jakma * bgpd.c: (peer_delete) Ensure freed buffers can not be diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c index d404309c..317e9f8d 100644 --- a/bgpd/bgp_aspath.c +++ b/bgpd/bgp_aspath.c @@ -926,14 +926,14 @@ aspath_firstas_check (struct aspath *aspath, as_t asno) return 0; } -/* AS path loop check. If aspath contains asno then return 1. */ +/* AS path loop check. If aspath contains asno then return >= 1. */ int aspath_loop_check (struct aspath *aspath, as_t asno) { struct assegment *seg; int count = 0; - if ( (aspath == NULL) || (aspath->segments) ) + if ( (aspath == NULL) || (aspath->segments == NULL) ) return 0; seg = aspath->segments; @@ -1363,7 +1363,7 @@ aspath_str2aspath (const char *str) { enum as_token token = as_token_unknown; u_short as_type; - u_short asno = NULL; + u_short asno = 0; struct aspath *aspath; int needtype; -- cgit v1.2.1