aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorWANG Cong <xiyou.wangcong@gmail.com>2017-03-23 14:03:31 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-03 11:36:34 -0400
commitd60d4e8c1b73608b6af3bc384e88c062485fd95e (patch)
treef47b006a7304e7323bfc9b218d02bfdd718df1ac /net
parentc63d6180076bbb6c5a508910e573994ddc628e5b (diff)
kcm: return immediately after copy_from_user() failure
[ Upstream commit a80db69e47d764bbcaf2fec54b1f308925e7c490 ] There is no reason to continue after a copy_from_user() failure. Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module") Cc: Tom Herbert <tom@herbertland.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r--net/kcm/kcmsock.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
index a646f3481240..fecad1098cf8 100644
--- a/net/kcm/kcmsock.c
+++ b/net/kcm/kcmsock.c
@@ -1685,7 +1685,7 @@ static int kcm_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
1685 struct kcm_attach info; 1685 struct kcm_attach info;
1686 1686
1687 if (copy_from_user(&info, (void __user *)arg, sizeof(info))) 1687 if (copy_from_user(&info, (void __user *)arg, sizeof(info)))
1688 err = -EFAULT; 1688 return -EFAULT;
1689 1689
1690 err = kcm_attach_ioctl(sock, &info); 1690 err = kcm_attach_ioctl(sock, &info);
1691 1691
@@ -1695,7 +1695,7 @@ static int kcm_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
1695 struct kcm_unattach info; 1695 struct kcm_unattach info;
1696 1696
1697 if (copy_from_user(&info, (void __user *)arg, sizeof(info))) 1697 if (copy_from_user(&info, (void __user *)arg, sizeof(info)))
1698 err = -EFAULT; 1698 return -EFAULT;
1699 1699
1700 err = kcm_unattach_ioctl(sock, &info); 1700 err = kcm_unattach_ioctl(sock, &info);
1701 1701
@@ -1706,7 +1706,7 @@ static int kcm_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
1706 struct socket *newsock = NULL; 1706 struct socket *newsock = NULL;
1707 1707
1708 if (copy_from_user(&info, (void __user *)arg, sizeof(info))) 1708 if (copy_from_user(&info, (void __user *)arg, sizeof(info)))
1709 err = -EFAULT; 1709 return -EFAULT;
1710 1710
1711 err = kcm_clone(sock, &info, &newsock); 1711 err = kcm_clone(sock, &info, &newsock);
1712 1712