drivers/net/wireless/ipw2x00: Use kmemdup

Use kmemdup when some other buffer is immediately copied into the
allocated region.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression from,to,size,flag;
statement S;
@@

-  to = \(kmalloc\|kzalloc\)(size,flag);
+  to = kmemdup(from,size,flag);
   if (to==NULL || ...) S
-  memcpy(to, from, size);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Julia Lawall 2010-05-15 23:21:01 +02:00 committed by John W. Linville
parent a61aac7cf1
commit d3e5033d5f

View file

@ -6624,13 +6624,12 @@ static int ipw_wx_set_genie(struct net_device *dev,
return -EINVAL; return -EINVAL;
if (wrqu->data.length) { if (wrqu->data.length) {
buf = kmalloc(wrqu->data.length, GFP_KERNEL); buf = kmemdup(extra, wrqu->data.length, GFP_KERNEL);
if (buf == NULL) { if (buf == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto out; goto out;
} }
memcpy(buf, extra, wrqu->data.length);
kfree(ieee->wpa_ie); kfree(ieee->wpa_ie);
ieee->wpa_ie = buf; ieee->wpa_ie = buf;
ieee->wpa_ie_len = wrqu->data.length; ieee->wpa_ie_len = wrqu->data.length;