diff options
author | Ursula Braun <ursula.braun@linux.ibm.com> | 2018-07-18 09:22:50 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-18 13:58:27 -0400 |
commit | ac0107edba253a6e58e923f9e68825decef3e681 (patch) | |
tree | fb2c0ad4a31a876a05095a431b11375736d0b75d | |
parent | 99be51f11d51400f744632f3938445a8d4de8943 (diff) |
net/smc: add error handling for get_user()
For security reasons the return code of get_user() should always be
checked.
Fixes: 01d2f7e2cdd31 ("net/smc: sockopts TCP_NODELAY and TCP_CORK")
Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/smc/af_smc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index c12a7fc18f56..6e5479067db0 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c | |||
@@ -1456,7 +1456,8 @@ static int smc_setsockopt(struct socket *sock, int level, int optname, | |||
1456 | 1456 | ||
1457 | if (optlen < sizeof(int)) | 1457 | if (optlen < sizeof(int)) |
1458 | return -EINVAL; | 1458 | return -EINVAL; |
1459 | get_user(val, (int __user *)optval); | 1459 | if (get_user(val, (int __user *)optval)) |
1460 | return -EFAULT; | ||
1460 | 1461 | ||
1461 | lock_sock(sk); | 1462 | lock_sock(sk); |
1462 | switch (optname) { | 1463 | switch (optname) { |