mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 21:46:45 +07:00
rtlwifi: Fix potential overflow on P2P code
Nicolas Waisman noticed that even though noa_len is checked for a compatible length it's still possible to overrun the buffers of p2pinfo since there's no check on the upper bound of noa_num. Bound noa_num against P2P_MAX_NOA_NUM. Reported-by: Nicolas Waisman <nico@semmle.com> Signed-off-by: Laura Abbott <labbott@redhat.com> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
7cded56583
commit
8c55dedb79
@ -754,6 +754,9 @@ static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data,
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
noa_num = (noa_len - 2) / 13;
|
noa_num = (noa_len - 2) / 13;
|
||||||
|
if (noa_num > P2P_MAX_NOA_NUM)
|
||||||
|
noa_num = P2P_MAX_NOA_NUM;
|
||||||
|
|
||||||
}
|
}
|
||||||
noa_index = ie[3];
|
noa_index = ie[3];
|
||||||
if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
|
if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
|
||||||
@ -848,6 +851,9 @@ static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data,
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
noa_num = (noa_len - 2) / 13;
|
noa_num = (noa_len - 2) / 13;
|
||||||
|
if (noa_num > P2P_MAX_NOA_NUM)
|
||||||
|
noa_num = P2P_MAX_NOA_NUM;
|
||||||
|
|
||||||
}
|
}
|
||||||
noa_index = ie[3];
|
noa_index = ie[3];
|
||||||
if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
|
if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
|
||||||
|
Loading…
Reference in New Issue
Block a user