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]

Reply via email to