]> err.no Git - linux-2.6/blobdiff - net/ipv6/ipv6_sockglue.c
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6] / net / ipv6 / ipv6_sockglue.c
index 8c6ea07f4d56932ac2aa8142e1161d058379e6e6..741cfcd96f88fe7a3694eb670e4fa91e4503175c 100644 (file)
@@ -346,6 +346,8 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
                 */
                if (optlen == 0)
                        optval = NULL;
+               else if (optval == NULL)
+                       goto e_inval;
                else if (optlen < sizeof(struct ipv6_opt_hdr) ||
                         optlen & 0x7 || optlen > 8 * 255)
                        goto e_inval;
@@ -1038,7 +1040,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
                        dst_release(dst);
                }
                if (val < 0)
-                       val = ipv6_devconf.hop_limit;
+                       val = sock_net(sk)->ipv6.devconf_all->hop_limit;
                break;
        }