In article <20030709195237.A8550@horus.imag.fr> (at Wed, 9 Jul 2003 19:52:37 +0200), Jean-Luc Richier <Jean-Luc.Richier@imag.fr> says:
> There is a bug in IPv6 route calculation since kernel 2.5.71. It affects
> all routes with prefix length != 0 (mod 8)
> The bug is as follows:
> do: ip -6 route add 2000::/3 via 2001:688:121:10::1
> ip -6 route
> It shows a route for ::/3, not for 2000::/3
good catch.
> PATCH 2: avoid overwriting the set value
> --- linux-2.5.74/include/net/ipv6.h.DIST 2003-07-02 22:53:44.000000000 +0200
> +++ linux-2.5.74/include/net/ipv6.h 2003-07-09 18:51:25.000000000 +0200
> @@ -276,8 +276,10 @@
> b = plen & 0x7;
>
> memcpy(pfx->s6_addr, addr, o);
> - if (b != 0)
> + if (b != 0) {
> pfx->s6_addr[o] = addr->s6_addr[o] & (0xff00 >> b);
> + o++;
> + }
> if (o < 16)
> memset(pfx->s6_addr + o, 0, 16 - o);
> }
>
Ok, let's use this one.
--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/