summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLevin, Alexander <alexander.levin@verizon.com>2017-07-18 06:23:16 +0200
committerDavid S. Miller <davem@davemloft.net>2017-07-19 22:32:11 +0200
commit98de4e0ea47d106846fc0e30ce4e644283fa7fc2 (patch)
treeba5cff38d9d85c2d9e003c238707a4050dd8b683
parentnetfilter: fix netfilter_net_init() return (diff)
downloadlinux-98de4e0ea47d106846fc0e30ce4e644283fa7fc2.tar.xz
linux-98de4e0ea47d106846fc0e30ce4e644283fa7fc2.zip
wireless: wext: terminate ifr name coming from userspace
ifr name is assumed to be a valid string by the kernel, but nothing was forcing username to pass a valid string. In turn, this would cause panics as we tried to access the string past it's valid memory. Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/dev_ioctl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 82fd4c9c4a1b..7657ad6bc13d 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -424,6 +424,8 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
if (copy_from_user(&iwr, arg, sizeof(iwr)))
return -EFAULT;
+ iwr.ifr_name[sizeof(iwr.ifr_name) - 1] = 0;
+
return wext_handle_ioctl(net, &iwr, cmd, arg);
}