diff options
Diffstat (limited to 'drivers/net/wireless/ipw2x00/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2x00/ipw2200.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c index 3aa3bb18f615..8feaa1d358ea 100644 --- a/drivers/net/wireless/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/ipw2x00/ipw2200.c | |||
@@ -6624,13 +6624,12 @@ static int ipw_wx_set_genie(struct net_device *dev, | |||
6624 | return -EINVAL; | 6624 | return -EINVAL; |
6625 | 6625 | ||
6626 | if (wrqu->data.length) { | 6626 | if (wrqu->data.length) { |
6627 | buf = kmalloc(wrqu->data.length, GFP_KERNEL); | 6627 | buf = kmemdup(extra, wrqu->data.length, GFP_KERNEL); |
6628 | if (buf == NULL) { | 6628 | if (buf == NULL) { |
6629 | err = -ENOMEM; | 6629 | err = -ENOMEM; |
6630 | goto out; | 6630 | goto out; |
6631 | } | 6631 | } |
6632 | 6632 | ||
6633 | memcpy(buf, extra, wrqu->data.length); | ||
6634 | kfree(ieee->wpa_ie); | 6633 | kfree(ieee->wpa_ie); |
6635 | ieee->wpa_ie = buf; | 6634 | ieee->wpa_ie = buf; |
6636 | ieee->wpa_ie_len = wrqu->data.length; | 6635 | ieee->wpa_ie_len = wrqu->data.length; |