From: Yang Hongyang Date: Mon, 4 Aug 2008 01:16:15 +0000 (-0700) Subject: ipv6: Fix the return value of Set Hop-by-Hop options header with NULL data pointer X-Git-Tag: v2.6.27-rc2~2^2~14 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;h=cfb266c0ee0ea0b7bfa8189e3a3a80344dec6112;p=safe%2Fjmp%2Flinux-2.6 ipv6: Fix the return value of Set Hop-by-Hop options header with NULL data pointer When Set Hop-by-Hop options header with NULL data pointer and optlen is not zero use setsockopt(), the kernel successfully return 0 instead of return error EINVAL or EFAULT. This patch fix the problem. Signed-off-by: Yang Hongyang Signed-off-by: David S. Miller --- diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index ea33b26..741cfcd 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -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;