Search Linux Wireless

Re: [PATCH] mt76: Off by one in mt76_calc_rx_airtime()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dan Carpenter <dan.carpenter@xxxxxxxxxx> writes:

> On Tue, Nov 26, 2019 at 09:04:15AM +0100, Toke Høiland-Jørgensen wrote:
>> Dan Carpenter <dan.carpenter@xxxxxxxxxx> writes:
>> 
>> > The sband->bitrates[] array has "sband->n_bitrates" elements so this
>> > check needs to be >= instead of > or we could read beyond the end of the
>> > array.
>> >
>> > These values come from when we call mt76_register_device():
>> >
>> > 	ret = mt76_register_device(&dev->mt76, true, mt7603_rates,
>> > 				   ARRAY_SIZE(mt7603_rates));
>> >
>> > Here sband->bitrates[] is mt7603_rates[] and ->n_bitrates is the
>> > ARRAY_SIZE()
>> >
>> > Fixes: 5ce09c1a7907 ("mt76: track rx airtime for airtime fairness and survey")
>> > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
>> > ---
>> >  drivers/net/wireless/mediatek/mt76/airtime.c | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/net/wireless/mediatek/mt76/airtime.c b/drivers/net/wireless/mediatek/mt76/airtime.c
>> > index 55116f395f9a..a4a785467748 100644
>> > --- a/drivers/net/wireless/mediatek/mt76/airtime.c
>> > +++ b/drivers/net/wireless/mediatek/mt76/airtime.c
>> > @@ -242,7 +242,7 @@ u32 mt76_calc_rx_airtime(struct mt76_dev *dev, struct mt76_rx_status *status,
>> >  			return 0;
>> >  
>> >  		sband = dev->hw->wiphy->bands[status->band];
>> > -		if (!sband || status->rate_idx > sband->n_bitrates)
>> > +		if (!sband || status->rate_idx >= sband->n_bitrates)
>> >  			return 0;
>> >  
>> >  		rate = &sband->bitrates[status->rate_idx];
>> 
>> This code has recently been ported to mac80211 (net/mac80211/airtime.c).
>> It seems that the bug is also present there; care to send a patch for
>> that as well? :)
>
> Oh.  Thanks for pointing that out.  I actually saw the static checker
> warning for that and ignored it thinking that it was the same code.
> :P

Well, it's copy-pasted from the same code ;)

The plan is to get rid of the version inside mt76; was waiting for the
trees to converge, though, so I guess after the merge window?

> I will send a fix for it.

Great, thanks!

-Toke





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux