Re: Bug in Linux 2.5.74 IPv6 routing
From: YOSHIFUJI Hideaki / 吉藤英明 <hidden>
Date: 2003-07-09 18:17:51
CC: netdev In article [off-list ref] (at Wed, 9 Jul 2003 19:52:37 +0200), Jean-Luc Richier [off-list ref] 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.
quoted hunk
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