Skip to content

Commit 7f460d3

Browse files
justincormackdavem330
authored andcommitted
fix missing copy_from_user in macvtap
Fix missing copy_from_user in macvtap SIOCSIFHWADDR ioctl. Signed-off-by: Justin Cormack <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 42275bd commit 7f460d3

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/net/macvtap.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1006,6 +1006,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
10061006
unsigned int __user *up = argp;
10071007
unsigned short u;
10081008
int __user *sp = argp;
1009+
struct sockaddr sa;
10091010
int s;
10101011
int ret;
10111012

@@ -1119,13 +1120,15 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
11191120
return ret;
11201121

11211122
case SIOCSIFHWADDR:
1123+
if (copy_from_user(&sa, &ifr->ifr_hwaddr, sizeof(sa)))
1124+
return -EFAULT;
11221125
rtnl_lock();
11231126
vlan = macvtap_get_vlan(q);
11241127
if (!vlan) {
11251128
rtnl_unlock();
11261129
return -ENOLINK;
11271130
}
1128-
ret = dev_set_mac_address(vlan->dev, &ifr->ifr_hwaddr);
1131+
ret = dev_set_mac_address(vlan->dev, &sa);
11291132
macvtap_put_vlan(vlan);
11301133
rtnl_unlock();
11311134
return ret;

0 commit comments

Comments
 (0)