Commit 7fe0d21f authored by Benjamin Berg's avatar Benjamin Berg Committed by Johannes Berg
Browse files

wifi: mac80211: skip rate verification for not captured PSDUs



If for example the sniffer did not follow any AIDs in an MU frame, then
some of the information may not be filled in or is even expected to be
invalid. As an example, in that case it is expected that Nss is zero.

Fixes: 2ff5e52e ("radiotap: add 0-length PSDU "not captured" type")
Signed-off-by: default avatarBenjamin Berg <benjamin.berg@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20251110142554.83a2858ee15b.I9f78ce7984872f474722f9278691ae16378f0a3e@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 2027e3bc
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -5360,10 +5360,14 @@ void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
	if (WARN_ON(!local->started))
		goto drop;

	if (likely(!(status->flag & RX_FLAG_FAILED_PLCP_CRC))) {
	if (likely(!(status->flag & RX_FLAG_FAILED_PLCP_CRC) &&
		   !(status->flag & RX_FLAG_NO_PSDU &&
		     status->zero_length_psdu_type ==
		     IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED))) {
		/*
		 * Validate the rate, unless a PLCP error means that
		 * we probably can't have a valid rate here anyway.
		 * Validate the rate, unless there was a PLCP error which may
		 * have an invalid rate or the PSDU was not capture and may be
		 * missing rate information.
		 */

		switch (status->encoding) {