浏览代码

mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set

It is possible that some broken AP might send HT IEs in it's
assoc response even though the STA has not sent them in assoc req
when WEP/TKIP is used as pairwise cipher suite. Also it is important
to check this bit before enabling ht mode in beacon receive path.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Vasanthakumar Thiagarajan 16 年之前
父节点
当前提交
53d6f81c78
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      net/mac80211/mlme.c

+ 4 - 2
net/mac80211/mlme.c

@@ -1528,7 +1528,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
 					 elems.wmm_param_len);
 					 elems.wmm_param_len);
 
 
 	if (elems.ht_info_elem && elems.wmm_param &&
 	if (elems.ht_info_elem && elems.wmm_param &&
-	    (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
+	    (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
+	    !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))
 		changed |= ieee80211_enable_ht(sdata, elems.ht_info_elem,
 		changed |= ieee80211_enable_ht(sdata, elems.ht_info_elem,
 					       ap_ht_cap_flags);
 					       ap_ht_cap_flags);
 
 
@@ -1954,7 +1955,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
 			erp_valid, erp_value);
 			erp_valid, erp_value);
 
 
 
 
-	if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param) {
+	if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param &&
+	    !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED)) {
 		struct sta_info *sta;
 		struct sta_info *sta;
 		struct ieee80211_supported_band *sband;
 		struct ieee80211_supported_band *sband;
 		u16 ap_ht_cap_flags;
 		u16 ap_ht_cap_flags;