From db97812c2c5e8a18d7cf3eb679a4cfdd6125f748 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Thu, 19 Jun 2014 11:37:23 +0200 Subject: [PATCH] staging: rtl8723au: rtw_add_beacon(): Replace magic constant with appropriate struct size Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c index 638e833..80d5fe7 100644 --- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c @@ -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, -- 2.7.4