[NETFILTER]: Fix ip6tables breakage from {get,set}sockopt compat layer
authorPatrick McHardy <kaber@trash.net>
Wed, 22 Mar 2006 21:53:20 +0000 (13:53 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Mar 2006 21:53:20 +0000 (13:53 -0800)
do_ipv6_getsockopt returns -EINVAL for unknown options, not
-ENOPROTOOPT as do_ipv6_setsockopt.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ipv6_sockglue.c

index 602feec477381ff03f5e598ba533cad8c750de83..4c20eeb3d56844859754cb207c8ad705f6558c4b 100644 (file)
@@ -907,7 +907,7 @@ int ipv6_getsockopt(struct sock *sk, int level, int optname,
        err = do_ipv6_getsockopt(sk, level, optname, optval, optlen);
 #ifdef CONFIG_NETFILTER
        /* we need to exclude all possible EINVALs except default case */
-       if (err == -ENOPROTOOPT && optname != IPV6_ADDRFORM &&
+       if (err == -EINVAL && optname != IPV6_ADDRFORM &&
                        optname != MCAST_MSFILTER) {
                int len;
 
@@ -944,7 +944,7 @@ int compat_ipv6_getsockopt(struct sock *sk, int level, int optname,
        err = do_ipv6_getsockopt(sk, level, optname, optval, optlen);
 #ifdef CONFIG_NETFILTER
        /* we need to exclude all possible EINVALs except default case */
-       if (err == -ENOPROTOOPT && optname != IPV6_ADDRFORM &&
+       if (err == -EINVAL && optname != IPV6_ADDRFORM &&
                        optname != MCAST_MSFILTER) {
                int len;