staging: r8822be: fix null pointer dereferences with a null driver_adapter

The call to _rtl_dbg_trace via macro HALMAC_RT_TRACE will trigger a null
pointer deference on a null driver_adapter. Fix this by assigning
driver_adapter earlier to halmac_adapter->driver_adapter before the tracing
call so that a non-null driver_adapter is passed instead.

I should have spotted these with an earlier patch I sent, but I overlooked
these in the rather large CoverityScan logs.

Detected by CoverityScan, CID#1454550, CID#1454554, CID#1454565,
CID#1454591, CID#1454598 ("Explicit null dereferenced")

Fixes: 938a0447f094 ("staging: r8822be: Add code for halmac sub-driver")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by Colin Ian King and committed by Greg Kroah-Hartman e1bf2886 a3563b09

+9 -8
+2 -2
drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_api_88xx.c
··· 2901 2901 if (halmac_adapter->fw_version.h2c_version < 4) 2902 2902 return HALMAC_RET_FW_NO_SUPPORT; 2903 2903 2904 + driver_adapter = halmac_adapter->driver_adapter; 2905 + 2904 2906 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 2905 2907 "[TRACE]%s ==========>\n", __func__); 2906 - 2907 - driver_adapter = halmac_adapter->driver_adapter; 2908 2908 2909 2909 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 2910 2910 "[TRACE]%s <==========\n", __func__);
+7 -6
drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
··· 1618 1618 void *driver_adapter = NULL; 1619 1619 enum halmac_ret_status status = HALMAC_RET_SUCCESS; 1620 1620 1621 + driver_adapter = halmac_adapter->driver_adapter; 1622 + 1621 1623 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 1622 1624 "%s!!\n", __func__); 1623 1625 1624 - driver_adapter = halmac_adapter->driver_adapter; 1625 1626 h2c_header = h2c_buff; 1626 1627 h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX; 1627 1628 ··· 1714 1713 void *driver_adapter = NULL; 1715 1714 enum halmac_ret_status status = HALMAC_RET_SUCCESS; 1716 1715 1716 + driver_adapter = halmac_adapter->driver_adapter; 1717 + 1717 1718 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 1718 1719 "halmac_send_h2c_set_pwr_mode_88xx!!\n"); 1719 1720 1720 - driver_adapter = halmac_adapter->driver_adapter; 1721 1721 h2c_header = H2c_buff; 1722 1722 h2c_cmd = h2c_header + HALMAC_H2C_CMD_HDR_SIZE_88XX; 1723 1723 ··· 2145 2143 enum halmac_cmd_process_status *process_status = 2146 2144 &halmac_adapter->halmac_state.scan_state_set.process_status; 2147 2145 2146 + driver_adapter = halmac_adapter->driver_adapter; 2147 + 2148 2148 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 2149 2149 "halmac_ctrl_ch_switch!!\n"); 2150 2150 2151 - driver_adapter = halmac_adapter->driver_adapter; 2152 2151 halmac_api = (struct halmac_api *)halmac_adapter->halmac_api; 2153 2152 2154 2153 if (halmac_transition_scan_state_88xx( ··· 2279 2276 { 2280 2277 u8 h2c_buff[HALMAC_H2C_CMD_SIZE_88XX] = {0}; 2281 2278 u16 h2c_seq_mum = 0; 2282 - void *driver_adapter = NULL; 2279 + void *driver_adapter = halmac_adapter->driver_adapter; 2283 2280 struct halmac_h2c_header_info h2c_header_info; 2284 2281 enum halmac_ret_status status = HALMAC_RET_SUCCESS; 2285 2282 2286 2283 HALMAC_RT_TRACE(driver_adapter, HALMAC_MSG_H2C, DBG_DMESG, 2287 2284 "%s!!\n", __func__); 2288 - 2289 - driver_adapter = halmac_adapter->driver_adapter; 2290 2285 2291 2286 UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(h2c_buff, bcn_ie_info->func_en); 2292 2287 UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(h2c_buff, bcn_ie_info->size_th);