staging: rtl8723au: rtw_add_beacon(): Replace magic constant with appropriate struct size

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jes Sorensen 2014-06-19 11:37:23 +02:00 committed by Greg Kroah-Hartman
parent 143ced27ac
commit db97812c2c
1 changed files with 7 additions and 5 deletions

View File

@ -2912,7 +2912,7 @@ static int rtw_add_beacon(struct rtw_adapter *adapter, const u8 *head,
size_t head_len, const u8 *tail, size_t tail_len)
{
int ret = 0;
u8 *pbuf = NULL;
u8 *pbuf;
uint len, wps_ielen = 0;
struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
/* struct sta_priv *pstapriv = &padapter->stapriv; */
@ -2923,17 +2923,19 @@ static int rtw_add_beacon(struct rtw_adapter *adapter, const u8 *head,
if (check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
return -EINVAL;
if (head_len < 24)
if (head_len < sizeof(struct ieee80211_hdr_3addr))
return -EINVAL;
pbuf = kzalloc(head_len + tail_len, GFP_KERNEL);
if (!pbuf)
return -ENOMEM;
/* 24 = beacon header len. */
memcpy(pbuf, (void *)head + 24, head_len - 24);
memcpy(pbuf + head_len - 24, (void *)tail, tail_len);
memcpy(pbuf, (void *)head + sizeof(struct ieee80211_hdr_3addr),
head_len - sizeof(struct ieee80211_hdr_3addr));
memcpy(pbuf + head_len - sizeof(struct ieee80211_hdr_3addr),
(void *)tail, tail_len);
len = head_len + tail_len - 24;
len = head_len + tail_len - sizeof(struct ieee80211_hdr_3addr);
/* check wps ie if inclued */
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,