diff options
| author | Arun KS <arunks@codeaurora.org> | 2017-02-07 18:41:25 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-29 17:25:35 -0700 |
| commit | 2e139766cacb8e7deb048d36798e144916e23931 (patch) | |
| tree | fe5998737b5f3cef8b97c490fbd2959234839bf2 /drivers/esoc | |
| parent | 664cdd33f956accabebd29edba6c220b1580744d (diff) | |
esoc: Fix user space corruption due to wrong data type
ESOC IOCTL was designed to transfer data of type unsigned int, but
was pushing data of unsigned long type. Hence causing data corruption
in user space. Fix this by changing put user to use unsigned int.
Change-Id: Ia233eedd76f1ca1ec3036889d6764e568ee975dd
Signed-off-by: Arun KS <arunks@codeaurora.org>
Diffstat (limited to 'drivers/esoc')
| -rw-r--r-- | drivers/esoc/esoc_dev.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/esoc/esoc_dev.c b/drivers/esoc/esoc_dev.c index 26b8d0fe512b..ffb2237da5fa 100644 --- a/drivers/esoc/esoc_dev.c +++ b/drivers/esoc/esoc_dev.c @@ -214,7 +214,7 @@ static long esoc_dev_ioctl(struct file *file, unsigned int cmd, esoc_clink->name); return -EIO; } - put_user(req, (unsigned long __user *)uarg); + put_user(req, (unsigned int __user *)uarg); } return err; @@ -227,7 +227,7 @@ static long esoc_dev_ioctl(struct file *file, unsigned int cmd, err = clink_ops->get_status(&status, esoc_clink); if (err) return err; - put_user(status, (unsigned long __user *)uarg); + put_user(status, (unsigned int __user *)uarg); break; case ESOC_WAIT_FOR_CRASH: err = wait_event_interruptible(esoc_udev->evt_wait, @@ -241,7 +241,7 @@ static long esoc_dev_ioctl(struct file *file, unsigned int cmd, esoc_clink->name); return -EIO; } - put_user(evt, (unsigned long __user *)uarg); + put_user(evt, (unsigned int __user *)uarg); } return err; break; |
