diff options
Diffstat (limited to 'drivers/net/wan/lmc/lmc_main.c')
| -rw-r--r-- | drivers/net/wan/lmc/lmc_main.c | 13 | 
1 files changed, 3 insertions, 10 deletions
| diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index 37b1e0d03e31..90a4ad9a2d08 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c @@ -494,18 +494,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/                              break;                      } -                    data = kmalloc(xc.len, GFP_KERNEL); -                    if (!data) { -                            ret = -ENOMEM; +                    data = memdup_user(xc.data, xc.len); +                    if (IS_ERR(data)) { +                            ret = PTR_ERR(data);                              break;                      } -                     -                    if(copy_from_user(data, xc.data, xc.len)) -                    { -                    	kfree(data); -                    	ret = -ENOMEM; -                    	break; -                    }                      printk("%s: Starting load of data Len: %d at 0x%p == 0x%p\n", dev->name, xc.len, xc.data, data); |