]> git.hungrycats.org Git - linux/commitdiff
wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
authorJohannes Berg <johannes.berg@intel.com>
Wed, 5 Oct 2022 13:10:09 +0000 (15:10 +0200)
committerZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Sun, 16 Oct 2022 00:26:29 +0000 (20:26 -0400)
commit 1833b6f46d7e2830251a063935ab464256defe22 upstream.

If the tool on the other side (e.g. wmediumd) gets confused
about the rate, we hit a warning in mac80211. Silence that
by effectively duplicating the check here and dropping the
frame silently (in mac80211 it's dropped with the warning).

Reported-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
Tested-by: Sönke Huster <shuster@seemoo.tu-darmstadt.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 3539e75abe3c9e5acc0b40b06773bc5aac0e358e)

drivers/net/wireless/mac80211_hwsim.c

index ceb089e4a136aa8c27d2ef1e7ecbb98167d16c0f..c7dfc632d6b0a5cef8b8b733a76444dabbeff074 100644 (file)
@@ -3729,6 +3729,8 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
 
        rx_status.band = channel->band;
        rx_status.rate_idx = nla_get_u32(info->attrs[HWSIM_ATTR_RX_RATE]);
+       if (rx_status.rate_idx >= data2->hw->wiphy->bands[rx_status.band]->n_bitrates)
+               goto out;
        rx_status.signal = nla_get_u32(info->attrs[HWSIM_ATTR_SIGNAL]);
 
        hdr = (void *)skb->data;