diff options
author | Daniel Walter <dwalter@sigma-star.at> | 2015-11-18 11:15:49 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-11-18 16:09:26 -0500 |
commit | 7fe9a937d5156761cf79dc354f616c726b5c09e2 (patch) | |
tree | a70d213367d46deeffa4cc8943c7502cfc1f41bd | |
parent | 183e53e8ddf4165c3763181682189362d6b403f7 (diff) |
usb: gadget: functionfs: fix missing access_ok checks
use safe copy_*_user instead of unsafe __copy_*_user
functions when accessing userland memory.
Signed-off-by: Daniel Walter <dwalter@sigma-star.at>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index adc6d52efa46..cf43e9e18368 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c | |||
@@ -423,7 +423,7 @@ static ssize_t __ffs_ep0_read_events(struct ffs_data *ffs, char __user *buf, | |||
423 | spin_unlock_irq(&ffs->ev.waitq.lock); | 423 | spin_unlock_irq(&ffs->ev.waitq.lock); |
424 | mutex_unlock(&ffs->mutex); | 424 | mutex_unlock(&ffs->mutex); |
425 | 425 | ||
426 | return unlikely(__copy_to_user(buf, events, size)) ? -EFAULT : size; | 426 | return unlikely(copy_to_user(buf, events, size)) ? -EFAULT : size; |
427 | } | 427 | } |
428 | 428 | ||
429 | static ssize_t ffs_ep0_read(struct file *file, char __user *buf, | 429 | static ssize_t ffs_ep0_read(struct file *file, char __user *buf, |
@@ -513,7 +513,7 @@ static ssize_t ffs_ep0_read(struct file *file, char __user *buf, | |||
513 | 513 | ||
514 | /* unlocks spinlock */ | 514 | /* unlocks spinlock */ |
515 | ret = __ffs_ep0_queue_wait(ffs, data, len); | 515 | ret = __ffs_ep0_queue_wait(ffs, data, len); |
516 | if (likely(ret > 0) && unlikely(__copy_to_user(buf, data, len))) | 516 | if (likely(ret > 0) && unlikely(copy_to_user(buf, data, len))) |
517 | ret = -EFAULT; | 517 | ret = -EFAULT; |
518 | goto done_mutex; | 518 | goto done_mutex; |
519 | 519 | ||
@@ -3493,7 +3493,7 @@ static char *ffs_prepare_buffer(const char __user *buf, size_t len) | |||
3493 | if (unlikely(!data)) | 3493 | if (unlikely(!data)) |
3494 | return ERR_PTR(-ENOMEM); | 3494 | return ERR_PTR(-ENOMEM); |
3495 | 3495 | ||
3496 | if (unlikely(__copy_from_user(data, buf, len))) { | 3496 | if (unlikely(copy_from_user(data, buf, len))) { |
3497 | kfree(data); | 3497 | kfree(data); |
3498 | return ERR_PTR(-EFAULT); | 3498 | return ERR_PTR(-EFAULT); |
3499 | } | 3499 | } |