Simon Horman wrote:
--- IPv6addr.c_ORIG 2009-02-17 14:28:45.000000000 +0100
+++ IPv6addr.c 2009-02-17 14:29:24.000000000 +0100
@@ -487,7 +487,10 @@
n = plen / 32;
memset(mask.s6_addr32 + n + 1, 0, (3 - n) * 4);
s = 32 - plen % 32;
- mask.s6_addr32[n] = 0xffffffff << s;
+ if (s == 32)
+ mask.s6_addr32[n] = 0x0;
+ else
+ mask.s6_addr32[n] = 0xffffffff << s;
mask.s6_addr32[n] = htonl(mask.s6_addr32[n]);
}
this looks like a good fix to me, how well tested is it?
I'm embarrassed to say that this problem was introduced by me the last time
that I tried to fix this code [1].
http://hg.vergenet.net/linux-ha/dev/rev/774ee922abe7
We tested it yesterday and I switched my cluster to the lenny node
yesterday. This patch works for me in my production environment and I
plan to use it. It would be great if you could get this into 5.0.1.
Since I only have one /64 network, I can't tell about other masks, but
since those shouldn't interfere with my change, it shouldn't do any harm.
Thanks
Philipp
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]