diff options
author | Christoph Hellwig <hch@lst.de> | 2020-07-19 09:21:59 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-07-19 18:26:42 -0700 |
commit | 1031cea0019ec967a260ad835c0a5fe03d1b93a5 (patch) | |
tree | 8f4054f3273bba3eacc610b8989247f47fd602a7 /net | |
parent | 722eca9ecac7f83a0378fc48aa1acd025d9dd1da (diff) | |
download | linux-stable-1031cea0019ec967a260ad835c0a5fe03d1b93a5.tar.gz linux-stable-1031cea0019ec967a260ad835c0a5fe03d1b93a5.tar.bz2 linux-stable-1031cea0019ec967a260ad835c0a5fe03d1b93a5.zip |
sctp: pass a kernel pointer to sctp_setsockopt_fragment_interleave
Use the kernel pointer that sctp_setsockopt has available instead of
directly handling the user pointer.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sctp/socket.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 2862047054d5..874cec731530 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -3422,18 +3422,13 @@ static int sctp_setsockopt_context(struct sock *sk, * application using the one to many model may become confused and act * incorrectly. */ -static int sctp_setsockopt_fragment_interleave(struct sock *sk, - char __user *optval, +static int sctp_setsockopt_fragment_interleave(struct sock *sk, int *val, unsigned int optlen) { - int val; - if (optlen != sizeof(int)) return -EINVAL; - if (get_user(val, (int __user *)optval)) - return -EFAULT; - sctp_sk(sk)->frag_interleave = !!val; + sctp_sk(sk)->frag_interleave = !!*val; if (!sctp_sk(sk)->frag_interleave) sctp_sk(sk)->ep->intl_enable = 0; @@ -4701,7 +4696,7 @@ static int sctp_setsockopt(struct sock *sk, int level, int optname, retval = sctp_setsockopt_context(sk, kopt, optlen); break; case SCTP_FRAGMENT_INTERLEAVE: - retval = sctp_setsockopt_fragment_interleave(sk, optval, optlen); + retval = sctp_setsockopt_fragment_interleave(sk, kopt, optlen); break; case SCTP_MAX_BURST: retval = sctp_setsockopt_maxburst(sk, optval, optlen); |