Update v4l2-compat-ioctl32.c

This commit is contained in:
Igor Pečovnik
2018-07-08 13:12:37 +02:00
committed by GitHub
parent dcc7ab92ae
commit aff9434dfa

View File

@@ -871,17 +871,17 @@ static int put_v4l2_ext_controls32(struct file *file,
u32 n;
compat_caddr_t p;
+ if (!access_ok(VERIFY_WRITE, up, sizeof(*up)) ||
+ assign_in_user(&up->ctrl_class, &kp->ctrl_class) ||
+ get_user(count, &kp->count) ||
+ put_user(count, &up->count) ||
+ assign_in_user(&up->error_idx, &kp->error_idx) ||
+ copy_in_user(up->reserved, kp->reserved, sizeof(up->reserved)) ||
+ get_user(kcontrols, &kp->controls))
+ return -EFAULT;
if (!access_ok(VERIFY_WRITE, up, sizeof(*up)) ||
assign_in_user(&up->ctrl_class, &kp->ctrl_class) ||
get_user(count, &kp->count) ||
put_user(count, &up->count) ||
assign_in_user(&up->error_idx, &kp->error_idx) ||
copy_in_user(up->reserved, kp->reserved, sizeof(up->reserved)) ||
get_user(kcontrols, &kp->controls))
return -EFAULT;
+ if (!count)
+ return 0;
if (!count)
return 0;
if (get_user(p, &up->controls))
return -EFAULT;