Search Linux Wireless

RE: [PATCH 5.1] rtw88: fix subscript above array bounds compiler warning

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

 



> Subject: [PATCH 5.1] rtw88: fix subscript above array bounds compiler warning
> 
> My compiler complains about:
> 
> drivers/net/wireless/realtek/rtw88/phy.c: In function
> ‘rtw_phy_rf_power_2_rssi’:
> drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is
> above array bounds [-Warray-bounds]
>   linear = db_invert_table[i][j];
> 
> According to comment power_db should be in range 1 ~ 96 .
> To fix add check for boundaries before access the array.
> 
> Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>
> ---
> RFC -> v1
> - add check before accessing the array insted of
>   rtw_phy_power_2_db() change.
> 
>  drivers/net/wireless/realtek/rtw88/phy.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/wireless/realtek/rtw88/phy.c
> b/drivers/net/wireless/realtek/rtw88/phy.c
> index 4381b360b5b5..9ca52a4d025a 100644
> --- a/drivers/net/wireless/realtek/rtw88/phy.c
> +++ b/drivers/net/wireless/realtek/rtw88/phy.c
> @@ -423,6 +423,11 @@ static u64 rtw_phy_db_2_linear(u8 power_db)
>  	u8 i, j;
>  	u64 linear;
> 
> +	if (power_db > 96)
> +		power_db = 96;
> +	else if (power_db < 1)
> +		power_db = 1;

I think it's "return 1" here.

> +
>  	/* 1dB ~ 96dB */
>  	i = (power_db - 1) >> 3;
>  	j = (power_db - 1) - (i << 3);
> --

Yan-Hsuan




[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