diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2022-10-05 15:10:09 +0200 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-10-15 07:55:56 +0200 |
| commit | 3539e75abe3c9e5acc0b40b06773bc5aac0e358e (patch) | |
| tree | c8f04920317c3b879d09ce4ac5860cc9ae43854c | |
| parent | b0e5c5deb7880be5b8a459d584e13e1f9879d307 (diff) | |
| download | linux-3539e75abe3c9e5acc0b40b06773bc5aac0e358e.tar.gz linux-3539e75abe3c9e5acc0b40b06773bc5aac0e358e.tar.bz2 linux-3539e75abe3c9e5acc0b40b06773bc5aac0e358e.zip | |
wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
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>
| -rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 50190ded7edc..a6d4ff4760ad 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -3675,6 +3675,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; |
