mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-21 06:24:12 +00:00
wifi: rtw88: phy: fix warning of possible buffer overflow
reported by smatch phy.c:854 rtw_phy_linear_2_db() error: buffer overflow 'db_invert_table[i]' 8 <= 8 (assuming for loop doesn't break) However, it seems to be a false alarm because we prevent it originally via if (linear >= db_invert_table[11][7]) return 96; /* maximum 96 dB */ Still, we adjust the code to be more readable and avoid smatch warning. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220727065003.28340-5-pkshih@realtek.com
This commit is contained in:
parent
79ba1062c4
commit
86331c7e0c
1 changed files with 8 additions and 13 deletions
|
@ -816,23 +816,18 @@ static u8 rtw_phy_linear_2_db(u64 linear)
|
|||
u8 j;
|
||||
u32 dB;
|
||||
|
||||
if (linear >= db_invert_table[11][7])
|
||||
return 96; /* maximum 96 dB */
|
||||
|
||||
for (i = 0; i < 12; i++) {
|
||||
if (i <= 2 && (linear << FRAC_BITS) <= db_invert_table[i][7])
|
||||
break;
|
||||
else if (i > 2 && linear <= db_invert_table[i][7])
|
||||
break;
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (i <= 2 && (linear << FRAC_BITS) <= db_invert_table[i][j])
|
||||
goto cnt;
|
||||
else if (i > 2 && linear <= db_invert_table[i][j])
|
||||
goto cnt;
|
||||
}
|
||||
}
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (i <= 2 && (linear << FRAC_BITS) <= db_invert_table[i][j])
|
||||
break;
|
||||
else if (i > 2 && linear <= db_invert_table[i][j])
|
||||
break;
|
||||
}
|
||||
return 96; /* maximum 96 dB */
|
||||
|
||||
cnt:
|
||||
if (j == 0 && i == 0)
|
||||
goto end;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue