ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO
authorJiri Bohac <jbohac@suse.cz>
Fri, 30 Aug 2013 09:18:45 +0000 (11:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Sep 2013 02:11:44 +0000 (22:11 -0400)
commit61e76b178dbe7145e8d6afa84bb4ccea71918994
tree740f1bb0f3e21de818d4de59b6ed8cfa3e5f7bfb
parenta8787645e14ce7bbc3db9788526ed0be968c0df2
ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO

RFC 4443 has defined two additional codes for ICMPv6 type 1 (destination
unreachable) messages:
        5 - Source address failed ingress/egress policy
6 - Reject route to destination

Now they are treated as protocol error and icmpv6_err_convert() converts them
to EPROTO.

RFC 4443 says:
"Codes 5 and 6 are more informative subsets of code 1."

Treat codes 5 and 6 as code 1 (EACCES)

Btw, connect() returning -EPROTO confuses firefox, so that fallback to
other/IPv4 addresses does not work:
https://bugzilla.mozilla.org/show_bug.cgi?id=910773

Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/icmpv6.h
net/ipv6/icmp.c