diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-02 14:59:38 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-01-06 08:25:24 -0500 |
commit | abb0f6a79fe8eba7982b73313b8623259d78c3f6 (patch) | |
tree | 3eacfcd16860ed1edd9190a30a8670f5c4ea9266 /drivers/cdrom | |
parent | 820351f05be93623c6e71b5d618f90f0deebc134 (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.c | 10 |
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) |