From: Christoph Hellwig Date: Wed, 13 May 2020 19:36:41 +0000 (+0200) Subject: ipv6: set msg_control_is_user in do_ipv6_getsockopt X-Git-Tag: v5.15~3723^2~204 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1b2f08df0a886e0565c71821d5230cba395f5c18;p=platform%2Fkernel%2Flinux-starfive.git ipv6: set msg_control_is_user in do_ipv6_getsockopt While do_ipv6_getsockopt does not call the high-level recvmsg helper, the msghdr eventually ends up being passed to put_cmsg anyway, and thus needs msg_control_is_user set to the proper value. Fixes: 1f466e1f15cf ("net: cleanly handle kernel vs user buffers for ->msg_control") Reported-by: Eric Dumazet Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller --- diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index 18d0540..a0e50cc 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c @@ -1075,6 +1075,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname, msg.msg_control = optval; msg.msg_controllen = len; msg.msg_flags = flags; + msg.msg_control_is_user = true; lock_sock(sk); skb = np->pktoptions;