diff options
author | Julia Lawall <julia@diku.dk> | 2010-05-15 17:21:43 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-17 19:31:15 -0400 |
commit | 94002c07ff0e207a883519ccc35c0b5390b29331 (patch) | |
tree | b730a75ef2ad76d1e3a322e5982b30ca46b6c487 /drivers/staging/rtl8192e/ieee80211 | |
parent | 96fe9ee2c2dfe3268961f3873ea6098b9b9f27c2 (diff) |
Staging: 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192e/ieee80211')
-rw-r--r-- | drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c index 215542a00ef..46b6e8c900e 100644 --- a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c +++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c | |||
@@ -3255,11 +3255,11 @@ static int ieee80211_wpa_set_wpa_ie(struct ieee80211_device *ieee, | |||
3255 | return -EINVAL; | 3255 | return -EINVAL; |
3256 | 3256 | ||
3257 | if (param->u.wpa_ie.len) { | 3257 | if (param->u.wpa_ie.len) { |
3258 | buf = kmalloc(param->u.wpa_ie.len, GFP_KERNEL); | 3258 | buf = kmemdup(param->u.wpa_ie.data, param->u.wpa_ie.len, |
3259 | GFP_KERNEL); | ||
3259 | if (buf == NULL) | 3260 | if (buf == NULL) |
3260 | return -ENOMEM; | 3261 | return -ENOMEM; |
3261 | 3262 | ||
3262 | memcpy(buf, param->u.wpa_ie.data, param->u.wpa_ie.len); | ||
3263 | kfree(ieee->wpa_ie); | 3263 | kfree(ieee->wpa_ie); |
3264 | ieee->wpa_ie = buf; | 3264 | ieee->wpa_ie = buf; |
3265 | ieee->wpa_ie_len = param->u.wpa_ie.len; | 3265 | ieee->wpa_ie_len = param->u.wpa_ie.len; |
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c index fcabaf3c88d..4971b1c8e7d 100644 --- a/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c +++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c | |||
@@ -979,10 +979,9 @@ int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len) | |||
979 | printk("len:%zu, ie:%d\n", len, ie[1]); | 979 | printk("len:%zu, ie:%d\n", len, ie[1]); |
980 | return -EINVAL; | 980 | return -EINVAL; |
981 | } | 981 | } |
982 | buf = kmalloc(len, GFP_KERNEL); | 982 | buf = kmemdup(ie, len, GFP_KERNEL); |
983 | if (buf == NULL) | 983 | if (buf == NULL) |
984 | return -ENOMEM; | 984 | return -ENOMEM; |
985 | memcpy(buf, ie, len); | ||
986 | kfree(ieee->wpa_ie); | 985 | kfree(ieee->wpa_ie); |
987 | ieee->wpa_ie = buf; | 986 | ieee->wpa_ie = buf; |
988 | ieee->wpa_ie_len = len; | 987 | ieee->wpa_ie_len = len; |