ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().
authorDavid S. Miller <davem@davemloft.net>
Tue, 13 Dec 2011 22:35:06 +0000 (17:35 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 6 Jan 2012 22:17:30 +0000 (14:17 -0800)
commitea67f1fb5976ad72d27e45dff42017894f30b563
tree7e288d46c32dcae1903bffb419f5dcf6adcc0c5f
parent4e1a937bf13f758c7be089f614e7e84bdafcc0af
ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().

[ Upstream commit bb3c36863e8001fc21a88bebfdead4da4c23e848 ]

After commit 8e2ec639173f325977818c45011ee176ef2b11f6 ("ipv6: don't
use inetpeer to store metrics for routes.") the test in rt6_alloc_cow()
for setting the ANYCAST flag is now wrong.

'rt' will always now have a plen of 128, because it is set explicitly
to 128 by ip6_rt_copy.

So to restore the semantics of the test, check the destination prefix
length of 'ort'.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv6/route.c