From a795f2e83030742ddbf772578c8dd23b6ec0b4fd Mon Sep 17 00:00:00 2001 From: Jaco Kroon Date: Wed, 17 Jul 2024 12:00:14 +0200 Subject: [PATCH] uls_inet6: We always need to start clearing from the last word back, this does not vary based on the number of bits. --- src/uls_inet6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uls_inet6.c b/src/uls_inet6.c index 55e6c19..712a8b6 100644 --- a/src/uls_inet6.c +++ b/src/uls_inet6.c @@ -7,7 +7,7 @@ static void in6_clear_host_bits(struct in6_addr *in6, int prefix_len) { int bits_to_clear = 128 - prefix_len; - int clear_index = prefix_len >> 5; /* we deal with 32 bits at a time */ + int clear_index = 128 / 32 - 1; while (bits_to_clear >= 32) { in6->s6_addr32[clear_index--] = 0; @@ -22,7 +22,7 @@ static void in6_set_host_bits(struct in6_addr *in6, int prefix_len) { int bits_to_set = 128 - prefix_len; - int set_index = prefix_len >> 5; /* we deal with 32 bits at a time */ + int set_index = 128 / 32 - 1; while (bits_to_set >= 32) { in6->s6_addr32[set_index--] = ~0U;