diff options
Diffstat (limited to 'useful_functions.c')
| -rw-r--r-- | useful_functions.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/useful_functions.c b/useful_functions.c index 133ae2f..7378fc9 100644 --- a/useful_functions.c +++ b/useful_functions.c @@ -364,8 +364,9 @@ static struct in6_addr *parse_ip6_mask(char *mask) if (bits != 0) { char *p = (char *)&maskaddr; memset(p, 0xff, bits / 8); - memset(p + (bits / 8) + 1, 0, (128 - bits) / 8); - p[bits / 8] = 0xff << (8 - (bits & 7)); + memset(p + (bits + 7) / 8, 0, (128 - bits) / 8); + if (bits & 7) + p[bits / 8] = 0xff << (8 - (bits & 7)); return &maskaddr; } |
