• L
    staging: r8188eu: Fix smatch error in core/rtw_mlme_ext.c · 70f1a6d6
    Larry Finger 提交于
    Smatch reports the following warning:
    "drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:8328 mlme_evt_hdl()
    	 error: buffer overflow 'wlanevents' 24 <= 24"
    
      8321          /*  checking if event code is valid */
      8322          if (evt_code >= MAX_C2HEVT) {
                        ^^^^^^^^^^^^^^^^^^^^^^
      8323                  RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nEvent Code(%d) mismatch!\n", evt_code));
      8324                  goto _abort_event_;
      8325          }
      8326
      8327          /*  checking if event size match the event parm size */
      8328          if ((wlanevents[evt_code].parmsize != 0) &&
                         ^^^^^^^^^^^^^^^^^^^^
      8329              (wlanevents[evt_code].parmsize != evt_sz)) {
      8330                  RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_,
      8331                           ("\nEvent(%d) Parm Size mismatch (%d vs %d)!\n",
      8332                           evt_code, wlanevents[evt_code].parmsize, evt_sz));
      8333                  goto _abort_event_;
      8334          }
    
    This warning results because the number of items in "enum rtw_c2h_event",
    which determines the value of MAX_C2HEVT, is one more than in "struct wlanevents".
    Adding an extra dummy event to the latter fixes the problem.
    Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    70f1a6d6
rtw_mlme_ext.h 29.5 KB