mac80211: Don't request encryption for proble response
PATCH 1/1 mac80211: Don't request encryption for proble response
Probe responses shouldn't be encrypted, and mac80211 doesn't set the crypto key accordingly. However it didn't set the IEEE80211_TX_CTL_DO_NOT_ENCRYPT flag which means drivers could make an attempt to encrypt it, and causing a NULL pointer dereference when accessing the provided hw_key field.
Signed-off-by Ivo van Doorn <[email protected]>
---
net/mac80211/mlme.c +1 -0
@@ -2531,6 +2531,7 @@ static int ieee80211_sta_join_ibss(struct net_device *dev, control->flags |=IEEE80211_TX_CTL_SHORT_PREAMBLE ; control->antenna_sel_tx = local->hw.conf.antenna_sel_tx; control->flags |=IEEE80211_TX_CTL_NO_ACK ; + control->flags |=IEEE80211_TX_CTL_DO_NOT_ENCRYPT ; control->control.retry_limit =1 ; ifsta->probe_resp =skb_copy (skb,GFP_ATOMIC );
Quoted 7 lines · Ivo van Doorn
Probe responses shouldn't be encrypted, and mac80211 doesn't set the crypto key accordingly. However it didn't set the
IEEE80211_TX_CTL_DO_NOT_ENCRYPTflag which means drivers could make an attempt to encrypt it, and causing a NULL pointer dereference when accessing the providedhw_keyfield.Signed-off-by Ivo van Doorn <[email protected]>
Acked-by Johannes Berg <[email protected]>
Quoted 14 lines
---
net/mac80211/mlme.c +1
-0@@ -2531,6 +2531,7 @@ static int ieee80211_sta_join_ibss(struct net_device *dev, control->flags |=IEEE80211_TX_CTL_SHORT_PREAMBLE ; control->antenna_sel_tx = local->hw.conf.antenna_sel_tx; control->flags |=IEEE80211_TX_CTL_NO_ACK ; + control->flags |=IEEE80211_TX_CTL_DO_NOT_ENCRYPT ; control->control.retry_limit =1 ; ifsta->probe_resp =skb_copy (skb,GFP_ATOMIC );