Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f460d30 authored by Justin Cormack's avatar Justin Cormack Committed by David S. Miller
Browse files

fix missing copy_from_user in macvtap



Fix missing copy_from_user in macvtap SIOCSIFHWADDR ioctl.

Signed-off-by: default avatarJustin Cormack <justin@netbsd.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 42275bd8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1006,6 +1006,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
	unsigned int __user *up = argp;
	unsigned short u;
	int __user *sp = argp;
	struct sockaddr sa;
	int s;
	int ret;

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

	case SIOCSIFHWADDR:
		if (copy_from_user(&sa, &ifr->ifr_hwaddr, sizeof(sa)))
			return -EFAULT;
		rtnl_lock();
		vlan = macvtap_get_vlan(q);
		if (!vlan) {
			rtnl_unlock();
			return -ENOLINK;
		}
		ret = dev_set_mac_address(vlan->dev, &ifr->ifr_hwaddr);
		ret = dev_set_mac_address(vlan->dev, &sa);
		macvtap_put_vlan(vlan);
		rtnl_unlock();
		return ret;