staging: rtl8723au: fix potential leak in update_bcn_wps_ie()
PATCH v2 1/1 staging: rtl8723au: fix potential leak in update_bcn_wps_ie()
Fix a potential leak in the error path of function update_bcn_wps_ie(). Move the affected input verification to the beginning of the function so that it may return directly without leaking already allocated memory. Detected by Coverity - CID 1077718.
---
v2: Added change suggested by Mateusz Guzik:
Move the check before allocating the memory instead of freeing the resource afterwards in the error path.
Compile tested and applies against branch staging-next of tree git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
--- drivers/staging/rtl8723au/core/rtw_ap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/rtl8723au/core/rtw_ap.c +4 -4
@@ -1256,6 +1256,10 @@ static void update_bcn_wps_ie(struct rtw_adapter *padapter)DBG_8723A ("%s\n" , __func__); + pwps_ie_src = pmlmepriv->wps_beacon_ie; +if (pwps_ie_src ==NULL ) +return ; + pwps_ie =rtw_get_wps_ie23a (ie+_FIXED_IE_LENGTH_, ielen-_FIXED_IE_LENGTH_,NULL , &wps_ielen);if (pwps_ie ==NULL || wps_ielen ==0 )
@@ -1274,10 +1278,6 @@ static void update_bcn_wps_ie(struct rtw_adapter *padapter) remainder_ielen); } - pwps_ie_src = pmlmepriv->wps_beacon_ie; -if (pwps_ie_src ==NULL ) -return ; - wps_ielen = (uint )pwps_ie_src[1 ];/* to get ie data len */ if ((wps_offset+wps_ielen+2 +remainder_ielen)<=MAX_IE_SZ ) {
Signature · 1 line
1.9.1
Quoted 9 lines · Christian Engelmayer
Fix a potential leak in the error path of function
update_bcn_wps_ie(). Move the affected input verification to the beginning of the function so that it may return directly without leaking already allocated memory. Detected by Coverity - CID 1077718.Signed-off-by Christian Engelmayer <[email protected]>---
v2: Added change suggested by Mateusz Guzik:
Quoted 8 lines
Move the check before allocating the memory instead of freeing the resource afterwards in the error path.
Compile tested and applies against branch staging-next of tree git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
--- drivers/staging/rtl8723au/core/rtw_ap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
Added to the 8723au tree
Thanks!
Jes