Browse Source

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>
Ursula Braun 7 years ago
parent
commit
ac0107edba
1 changed files with 2 additions and 1 deletions
  1. 2 1
      net/smc/af_smc.c

+ 2 - 1
net/smc/af_smc.c

@@ -1456,7 +1456,8 @@ static int smc_setsockopt(struct socket *sock, int level, int optname,
 
 
 	if (optlen < sizeof(int))
 	if (optlen < sizeof(int))
 		return -EINVAL;
 		return -EINVAL;
-	get_user(val, (int __user *)optval);
+	if (get_user(val, (int __user *)optval))
+		return -EFAULT;
 
 
 	lock_sock(sk);
 	lock_sock(sk);
 	switch (optname) {
 	switch (optname) {