diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index c6a4a30d95cc..8bfc99958927 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -614,7 +614,13 @@ ieee80211_select_key_8023(struct ieee80211_tx_data *tx) tx->key = rcu_dereference(tx->sdata->deflink.default_multicast_key); } - if (tx->key && tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) + if (!tx->key) + return TX_CONTINUE; + + if (unlikely(tx->key->flags & KEY_FLAG_TAINTED)) + return TX_DROP; + + if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) info->control.hw_key = &tx->key->conf; return TX_CONTINUE;