Message ID | 1341418208-28663-2-git-send-email-cavallar@lri.fr (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index cdd4ac6..691aa6c 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -552,6 +552,9 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) !(ieee80211_is_action(hdr->frame_control) && tx->sta && test_sta_flag(tx->sta, WLAN_STA_MFP))) tx->key = NULL; + else if (ieee80211_is_mgmt(hdr->frame_control) && + !ieee80211_is_robust_mgmt_frame(hdr)) + tx->key = NULL; else { I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted); return TX_DROP;
When drop_unencrypted is enabled and MFP is disabled, non-robust management frames for not-yet associated STA are dropped. This isn't visible as many management frames sent from the kernel have TX_INTFL_DONT_ENCRYPT set and management frames injected from a monitor vif have TX_CTL_INJECTED so aren't dropped. But management frames sent from userspace via NL80211_CMD_FRAME do not have this flag set, so are dropped. This patch make it always accept non-robust management frames. Signed-off-by: Nicolas Cavallari <cavallar@lri.fr> --- changes : v2->v3 : now depends on johannes's cleanup, even clearer code. v1->v2 : thinier, clearer, more correct code. migrated from RFC to PATCH. --- net/mac80211/tx.c | 3 +++ 1 file changed, 3 insertions(+)