ipv6: Ignore route option with ROUTER_PREF_INVALID
authorJens Rosenboom <me@jayr.de>
Thu, 10 Sep 2009 06:25:11 +0000 (06:25 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Sep 2009 00:10:38 +0000 (17:10 -0700)
RFC4191 says that "If the Reserved (10) value is received, the Route
Information Option MUST be ignored.", so this patch makes us conform
to the RFC. This is different to the usage of the Default Router
Preference, where an invalid value must indeed be treated as
PREF_MEDIUM.

Signed-off-by: Jens Rosenboom <me@jayr.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index 9ccfef3455605d1c629c92aaa2f1346c556800a9..77aecbe8ff6caf261c04700d6bea889bb2221a7e 100644 (file)
@@ -481,7 +481,7 @@ int rt6_route_rcv(struct net_device *dev, u8 *opt, int len,
 
        pref = rinfo->route_pref;
        if (pref == ICMPV6_ROUTER_PREF_INVALID)
-               pref = ICMPV6_ROUTER_PREF_MEDIUM;
+               return -EINVAL;
 
        lifetime = addrconf_timeout_fixup(ntohl(rinfo->lifetime), HZ);