diff --git a/[refs] b/[refs] index 18abdcf6d4ea..36ab52997d03 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d9317533c54836887d64bba973ae5c9c341b36a0 +refs/heads/master: 23226977e9421434a2e7e384219477199ca5f0ec diff --git a/trunk/drivers/staging/rtl8192e/rtllib_wx.c b/trunk/drivers/staging/rtl8192e/rtllib_wx.c index a8fd2e1f4ada..b4f00e54bd02 100644 --- a/trunk/drivers/staging/rtl8192e/rtllib_wx.c +++ b/trunk/drivers/staging/rtl8192e/rtllib_wx.c @@ -845,10 +845,9 @@ int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len) ieee->wps_ie_len = (len < MAX_WZC_IE_LEN) ? (len) : (MAX_WZC_IE_LEN); - buf = kmalloc(ieee->wps_ie_len, GFP_KERNEL); + buf = kmemdup(ie, ieee->wps_ie_len, GFP_KERNEL); if (buf == NULL) return -ENOMEM; - memcpy(buf, ie, ieee->wps_ie_len); ieee->wps_ie = buf; return 0; } @@ -859,10 +858,9 @@ int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len) if (len) { if (len != ie[1]+2) return -EINVAL; - buf = kmalloc(len, GFP_KERNEL); + buf = kmemdup(ie, len, GFP_KERNEL); if (buf == NULL) return -ENOMEM; - memcpy(buf, ie, len); kfree(ieee->wpa_ie); ieee->wpa_ie = buf; ieee->wpa_ie_len = len;