iwlegacy: 4965-rs: avoid null pointer dereference error

il4965_rs_initialize_lq checks to see if sta is null, however, before that
check il4965_rs_use_green dereferences sta when intializing use_green.
Avoid a potential null pointer dereference error by only calling
il4965_rs_use_green after we are sure sta is not null.

Smatch analysis:

drivers/net/wireless/iwlegacy/4965-rs.c:2160 il4965_rs_initialize_lq() warn:
  variable dereferenced before check 'sta' (see line 2155)

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Colin Ian King 2013-03-26 17:35:23 +00:00 коммит произвёл John W. Linville
Родитель 7fc0357479
Коммит ace5af3986
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -2152,7 +2152,7 @@ il4965_rs_initialize_lq(struct il_priv *il, struct ieee80211_conf *conf,
int rate_idx; int rate_idx;
int i; int i;
u32 rate; u32 rate;
u8 use_green = il4965_rs_use_green(il, sta); u8 use_green;
u8 active_tbl = 0; u8 active_tbl = 0;
u8 valid_tx_ant; u8 valid_tx_ant;
struct il_station_priv *sta_priv; struct il_station_priv *sta_priv;
@ -2160,6 +2160,7 @@ il4965_rs_initialize_lq(struct il_priv *il, struct ieee80211_conf *conf,
if (!sta || !lq_sta) if (!sta || !lq_sta)
return; return;
use_green = il4965_rs_use_green(il, sta);
sta_priv = (void *)sta->drv_priv; sta_priv = (void *)sta->drv_priv;
i = lq_sta->last_txrate_idx; i = lq_sta->last_txrate_idx;