diff options
Diffstat (limited to 'libxtables/xtables.c')
-rw-r--r-- | libxtables/xtables.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libxtables/xtables.c b/libxtables/xtables.c index 1ab86d5a..46f5e352 100644 --- a/libxtables/xtables.c +++ b/libxtables/xtables.c @@ -1702,8 +1702,9 @@ static struct in6_addr *parse_ip6mask(char *mask) if (bits != 0) { char *p = (void *)&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 < 128) + p[bits/8] = 0xff << (8 - (bits & 7)); return &maskaddr; } |