diff options
author | Christoph Hellwig <hch@lst.de> | 2020-05-13 22:36:41 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-13 23:11:45 +0300 |
commit | 1b2f08df0a886e0565c71821d5230cba395f5c18 (patch) | |
tree | cdfe2a9f056357309270e7e738e11f194304825f /net/ipv6/ipv6_sockglue.c | |
parent | 87f785e96218247ed47107792c20f3d86778da4b (diff) | |
download | linux-1b2f08df0a886e0565c71821d5230cba395f5c18.tar.xz |
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 <eric.dumazet@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ipv6_sockglue.c')
-rw-r--r-- | net/ipv6/ipv6_sockglue.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index 18d05403d3b5..a0e50cc57e54 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; |