staging: spectra: Use memdup_user
PATCH 1/1 staging: spectra: Use memdup_user
From: Thomas Meyer <[email protected]>
Use kmemdup_user rather than duplicating its implementation This is a little bit restricted to reduce false positives
The semantic patch that makes this output is available in scripts/coccinelle/api/memdup_user.cocci.
More information about semantic patching is available at
http://coccinelle.lip6.fr/
Signed-off-by Thomas Meyer <[email protected]>
---
drivers/staging/spectra/ffsport.c +4 -11
@@ -227,19 +227,12 @@ static int ioctl_write_page_data(unsigned long arg)if (copy_from_user (&info, (void __user *)arg,sizeof (info)))return -EFAULT ; - buf =kmalloc (IdentifyDeviceData.PageDataSize,GFP_ATOMIC ); -if (!buf) { -printk (KERN_ERR "ioctl_write_page_data: " -"failed to allocate memory\n" ); -return -ENOMEM ; - } - -if (copy_from_user (buf, (void __user *)info.data, - IdentifyDeviceData.PageDataSize)) { + buf =memdup_user ((void __user *)info.data, + IdentifyDeviceData.PageDataSize); +if (IS_ERR (buf)) {printk (KERN_ERR "ioctl_write_page_data: " "failed to copy user data\n" ); -kfree (buf); -return -EFAULT ; +return PTR_ERR (buf); }mutex_lock (&spectra_lock);