From c64b7f6a7828b74a13836aee84f5bcdc30fb374e Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Fri, 18 May 2012 10:19:59 +0100 Subject: [PATCH] Fix is_same_net6 - bugged if prefix length not divisible by 8. --- CHANGELOG | 4 ++++ src/util.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 6c3f0e3..a18e111 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,10 @@ version 2.62 advertisements with some configurations. Thanks to Vladislav Grishenko for the patch. + Fixed bug which broke DHCPv6/RA with prefix lengths + which are not divisible by 8. Thanks to Andre Coetzee + for spotting this. + version 2.61 Re-write interface discovery code on *BSD to use diff --git a/src/util.c b/src/util.c index 789bdd4..07f0338 100644 --- a/src/util.c +++ b/src/util.c @@ -330,7 +330,7 @@ int is_same_net6(struct in6_addr *a, struct in6_addr *b, int prefixlen) return 0; if (pfbits == 0 || - (a->s6_addr[pfbytes] >> (8 - pfbits) != b->s6_addr[pfbytes] >> (8 - pfbits))) + (a->s6_addr[pfbytes] >> (8 - pfbits) == b->s6_addr[pfbytes] >> (8 - pfbits))) return 1; return 0; -- 2.47.2