staging: rtl8822be: Keep array subscript no lower than zero
authorLarry Finger <Larry.Finger@lwfinger.net>
Sun, 24 Sep 2017 00:36:04 +0000 (19:36 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Oct 2017 13:33:15 +0000 (15:33 +0200)
The kbuild test robot reports the following:
   drivers/staging//rtlwifi/phydm/phydm_dig.c: In function 'odm_pause_dig':
   drivers/staging//rtlwifi/phydm/phydm_dig.c:494:45: warning: array subscript is below array bounds [-Warray-bounds]
      odm_write_dig(dm, dig_tab->pause_dig_value[max_level]);

This condition is caused when a loop falls through. The fix is to pin
max_level to be >= 0.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
c: kbuild test robot <fengguang.wu@intel.com>
Fixes: 9ce99b04b5b82fdf11e4c76b60a5f82c1e541297 staging: r8822be: Add phydm mini driver
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtlwifi/phydm/phydm_dig.c

index 31a4f3fcad193502180320b27d2d76936442d4db..c88b9788363a786bd896e48af75f7ae71d5a7d57 100644 (file)
@@ -490,6 +490,8 @@ void odm_pause_dig(void *dm_void, enum phydm_pause_type pause_type,
                                break;
                }
 
+               /* pin max_level to be >= 0 */
+               max_level = max_t(s8, 0, max_level);
                /* write IGI of lower level */
                odm_write_dig(dm, dig_tab->pause_dig_value[max_level]);
                ODM_RT_TRACE(dm, ODM_COMP_DIG,