mwifiex: vendor_ie length check for parse WMM IEs
While copying the vendor_ie obtained from the cfg80211_find_vendor_ie() to the struct mwifiex_types_wmm_info, length/size was inappropriate. This patch corrects the required length needed to the mwifiex_types_wmm_info Signed-off-by: Karthik D A <karthida@marvell.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
c44c040300
commit
113630b581
|
@ -404,7 +404,7 @@ mwifiex_set_wmm_params(struct mwifiex_private *priv,
|
||||||
struct cfg80211_ap_settings *params)
|
struct cfg80211_ap_settings *params)
|
||||||
{
|
{
|
||||||
const u8 *vendor_ie;
|
const u8 *vendor_ie;
|
||||||
struct ieee_types_header *wmm_ie;
|
const u8 *wmm_ie;
|
||||||
u8 wmm_oui[] = {0x00, 0x50, 0xf2, 0x02};
|
u8 wmm_oui[] = {0x00, 0x50, 0xf2, 0x02};
|
||||||
|
|
||||||
vendor_ie = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
|
vendor_ie = cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
|
||||||
|
@ -412,9 +412,9 @@ mwifiex_set_wmm_params(struct mwifiex_private *priv,
|
||||||
params->beacon.tail,
|
params->beacon.tail,
|
||||||
params->beacon.tail_len);
|
params->beacon.tail_len);
|
||||||
if (vendor_ie) {
|
if (vendor_ie) {
|
||||||
wmm_ie = (struct ieee_types_header *)vendor_ie;
|
wmm_ie = vendor_ie;
|
||||||
memcpy(&bss_cfg->wmm_info, wmm_ie + 1,
|
memcpy(&bss_cfg->wmm_info, wmm_ie +
|
||||||
sizeof(bss_cfg->wmm_info));
|
sizeof(struct ieee_types_header), *(wmm_ie + 1));
|
||||||
priv->wmm_enabled = 1;
|
priv->wmm_enabled = 1;
|
||||||
} else {
|
} else {
|
||||||
memset(&bss_cfg->wmm_info, 0, sizeof(bss_cfg->wmm_info));
|
memset(&bss_cfg->wmm_info, 0, sizeof(bss_cfg->wmm_info));
|
||||||
|
|
Loading…
Reference in New Issue