staging: rtl8188eu: fix potential leak in update_bcn_wps_ie()
PATCH v3 1/1 staging: rtl8188eu: 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.
---
v3: Resend after v2 failed to apply
* rebased against staging-next - commit 09c3fbba (staging: rtl8188eu:
Remove 'u8 *pbuf' from struct recv_buf)
* fixed mua: no multipart, 7bit text/plain us-ascii
v2: Added change suggested by Mateusz Guzik for the rtl8723au variant:
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/rtl8188eu/core/rtw_ap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/rtl8188eu/core/rtw_ap.c +4 -4
@@ -1306,6 +1306,10 @@ static void update_bcn_wps_ie(struct adapter *padapter)DBG_88E ("%s\n" , __func__); + pwps_ie_src = pmlmepriv->wps_beacon_ie; +if (pwps_ie_src ==NULL ) +return ; + pwps_ie =rtw_get_wps_ie (ie+_FIXED_IE_LENGTH_, ielen-_FIXED_IE_LENGTH_,NULL , &wps_ielen);if (pwps_ie ==NULL || wps_ielen ==0 )
@@ -1323,10 +1327,6 @@ static void update_bcn_wps_ie(struct adapter *padapter)memcpy (pbackup_remainder_ie, premainder_ie, 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 ) {memcpy (pwps_ie, pwps_ie_src, wps_ielen+2 );
Signature · 1 line
1.9.1
Quoted 15 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]>---
v3: Resend after v2 failed to apply* rebased against staging-next - commit
09c3fbba(staging: rtl8188eu:
Remove 'u8 *pbuf' from structrecv_buf)
* fixed mua: no multipart, 7bit text/plain us-asciiv2: Added change suggested by Mateusz Guzik for the rtl8723au variant:
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/rtl8188eu/core/rtw_ap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)