diff options
Diffstat (limited to 'lib/filter.c')
| -rw-r--r-- | lib/filter.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/filter.c b/lib/filter.c index b7a935d076..72a66d85ad 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -108,10 +108,14 @@ static int filter_match_cisco(struct filter *mfilter, const struct prefix *p)  		masklen2ip(p->prefixlen, &mask);  		check_mask = mask.s_addr & ~filter->mask_mask.s_addr; -		if (memcmp(&check_addr, &filter->addr.s_addr, 4) == 0 -		    && memcmp(&check_mask, &filter->mask.s_addr, 4) == 0) +		if (memcmp(&check_addr, &filter->addr.s_addr, IPV4_MAX_BYTELEN) +			    == 0 +		    && memcmp(&check_mask, &filter->mask.s_addr, +			      IPV4_MAX_BYTELEN) +			       == 0)  			return 1; -	} else if (memcmp(&check_addr, &filter->addr.s_addr, 4) == 0) +	} else if (memcmp(&check_addr, &filter->addr.s_addr, IPV4_MAX_BYTELEN) +		   == 0)  		return 1;  	return 0;  | 
