aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cdrom
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-01-02 14:59:38 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2016-01-06 08:25:24 -0500
commitabb0f6a79fe8eba7982b73313b8623259d78c3f6 (patch)
tree3eacfcd16860ed1edd9190a30a8670f5c4ea9266 /drivers/cdrom
parent820351f05be93623c6e71b5d618f90f0deebc134 (diff)
cdrom: don't open-code memdup_user()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/cdrom')
-rw-r--r--drivers/cdrom/cdrom.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index c206ccda899b..1b257ea9776a 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -3186,15 +3186,11 @@ static noinline int mmc_ioctl_dvd_read_struct(struct cdrom_device_info *cdi,
3186 if (!CDROM_CAN(CDC_DVD)) 3186 if (!CDROM_CAN(CDC_DVD))
3187 return -ENOSYS; 3187 return -ENOSYS;
3188 3188
3189 s = kmalloc(size, GFP_KERNEL); 3189 s = memdup_user(arg, size);
3190 if (!s) 3190 if (IS_ERR(s))
3191 return -ENOMEM; 3191 return PTR_ERR(s);
3192 3192
3193 cd_dbg(CD_DO_IOCTL, "entering DVD_READ_STRUCT\n"); 3193 cd_dbg(CD_DO_IOCTL, "entering DVD_READ_STRUCT\n");
3194 if (copy_from_user(s, arg, size)) {
3195 kfree(s);
3196 return -EFAULT;
3197 }
3198 3194
3199 ret = dvd_read_struct(cdi, s, cgc); 3195 ret = dvd_read_struct(cdi, s, cgc);
3200 if (ret) 3196 if (ret)