X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2F8021q%2Fvlan.c;h=fa76220708ce7cb068ae127c0ea35c8bd72fdfe6;hb=489447380a2921ec0e9154f773c44ab3167ede4b;hp=91e412b0ab005b439e328cf8800f4ee08fb7bdeb;hpb=2f058256cb64e346f4fb4499ff4e0f1c2791a4b4;p=linux-2.6 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 91e412b0ab..fa76220708 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -19,6 +19,7 @@ */ #include /* for copy_from_user */ +#include #include #include #include @@ -753,6 +754,8 @@ static int vlan_ioctl_handler(void __user *arg) break; case GET_VLAN_REALDEV_NAME_CMD: err = vlan_dev_get_realdev_name(args.device1, args.u.device2); + if (err) + goto out; if (copy_to_user(arg, &args, sizeof(struct vlan_ioctl_args))) { err = -EFAULT; @@ -761,6 +764,8 @@ static int vlan_ioctl_handler(void __user *arg) case GET_VLAN_VID_CMD: err = vlan_dev_get_vid(args.device1, &vid); + if (err) + goto out; args.u.VID = vid; if (copy_to_user(arg, &args, sizeof(struct vlan_ioctl_args))) { @@ -774,7 +779,7 @@ static int vlan_ioctl_handler(void __user *arg) __FUNCTION__, args.cmd); return -EINVAL; }; - +out: return err; }