diff options
Diffstat (limited to 'drivers/net/wireless/atmel/atmel.c')
| -rw-r--r-- | drivers/net/wireless/atmel/atmel.c | 11 | 
1 files changed, 3 insertions, 8 deletions
| diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/net/wireless/atmel/atmel.c index b01dc34d55af..0d8e0af3f74b 100644 --- a/drivers/net/wireless/atmel/atmel.c +++ b/drivers/net/wireless/atmel/atmel.c @@ -2646,14 +2646,9 @@ static int atmel_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)  			break;  		} -		if (!(new_firmware = kmalloc(com.len, GFP_KERNEL))) { -			rc = -ENOMEM; -			break; -		} - -		if (copy_from_user(new_firmware, com.data, com.len)) { -			kfree(new_firmware); -			rc = -EFAULT; +		new_firmware = memdup_user(com.data, com.len); +		if (IS_ERR(new_firmware)) { +			rc = PTR_ERR(new_firmware);  			break;  		} |