diff --git a/extensions/xt_RAWNAT.c b/extensions/xt_RAWNAT.c index f256e4c..063dcbe 100644 --- a/extensions/xt_RAWNAT.c +++ b/extensions/xt_RAWNAT.c @@ -48,7 +48,7 @@ rawnat_ipv6_mask(__be32 *addr, const __be32 *repl, unsigned int mask) break; case 33 ... 63: addr[0] = repl[0]; - addr[1] = remask(addr[1], repl[1], mask - 64); + addr[1] = remask(addr[1], repl[1], mask - 32); break; case 64: addr[0] = repl[0]; @@ -57,7 +57,7 @@ rawnat_ipv6_mask(__be32 *addr, const __be32 *repl, unsigned int mask) case 65 ... 95: addr[0] = repl[0]; addr[1] = repl[1]; - addr[2] = remask(addr[2], repl[2], mask - 96); + addr[2] = remask(addr[2], repl[2], mask - 64); case 96: addr[0] = repl[0]; addr[1] = repl[1]; @@ -67,7 +67,7 @@ rawnat_ipv6_mask(__be32 *addr, const __be32 *repl, unsigned int mask) addr[0] = repl[0]; addr[1] = repl[1]; addr[2] = repl[2]; - addr[3] = remask(addr[3], repl[3], mask - 128); + addr[3] = remask(addr[3], repl[3], mask - 96); break; case 128: addr[0] = repl[0];