Message ID | 1543487119-92033-1-git-send-email-bianpan2016@163.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 1dcd9429212b98bea87fc6ec92fb50bf5953eb47 |
Delegated to: | Kalle Valo |
Headers | show |
Series | mwifiex: fix potential NULL dereference and use after free | expand |
Pan Bian <bianpan2016@163.com> wrote: > There are two defects: (1) passing a NULL bss to > mwifiex_save_hidden_ssid_channels will result in NULL dereference, > (2) using bss after dropping the reference to it via cfg80211_put_bss. > To fix them, the patch moves the buggy code to the branch that bss is > not NULL and puts it before cfg80211_put_bss. > > Signed-off-by: Pan Bian <bianpan2016@163.com> Patch applied to wireless-drivers-next.git, thanks. 1dcd9429212b mwifiex: fix potential NULL dereference and use after free
diff --git a/drivers/net/wireless/marvell/mwifiex/scan.c b/drivers/net/wireless/marvell/mwifiex/scan.c index 8e483b0..dfe2cf0 100644 --- a/drivers/net/wireless/marvell/mwifiex/scan.c +++ b/drivers/net/wireless/marvell/mwifiex/scan.c @@ -1882,15 +1882,17 @@ mwifiex_parse_single_response_buf(struct mwifiex_private *priv, u8 **bss_info, ETH_ALEN)) mwifiex_update_curr_bss_params(priv, bss); - cfg80211_put_bss(priv->wdev.wiphy, bss); - } - if ((chan->flags & IEEE80211_CHAN_RADAR) || - (chan->flags & IEEE80211_CHAN_NO_IR)) { - mwifiex_dbg(adapter, INFO, - "radar or passive channel %d\n", - channel); - mwifiex_save_hidden_ssid_channels(priv, bss); + if ((chan->flags & IEEE80211_CHAN_RADAR) || + (chan->flags & IEEE80211_CHAN_NO_IR)) { + mwifiex_dbg(adapter, INFO, + "radar or passive channel %d\n", + channel); + mwifiex_save_hidden_ssid_channels(priv, + bss); + } + + cfg80211_put_bss(priv->wdev.wiphy, bss); } } } else {
There are two defects: (1) passing a NULL bss to mwifiex_save_hidden_ssid_channels will result in NULL dereference, (2) using bss after dropping the reference to it via cfg80211_put_bss. To fix them, the patch moves the buggy code to the branch that bss is not NULL and puts it before cfg80211_put_bss. Signed-off-by: Pan Bian <bianpan2016@163.com> --- drivers/net/wireless/marvell/mwifiex/scan.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)