wlan: Fix for the Memory Leak in wlan_qct_wdi.c
Fix for Memory Leak in wlan_qct_wdi.c because of allocating memory twice
in WDI_ProcessUpdateScanParamsReq
Change-Id: I2781c9f4003fcebd6ed5f64014d71c7366e400fa
CR-Fixed: 431412
(cherry picked from commit ab91c6b8e26b210fe86f9e930f8485ec4922f6c7)
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 2c82099..0d23541 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -23000,10 +23000,8 @@
WDI_UpdateScanParamsInfoType* pwdiUpdateScanParams = NULL;
WDI_UpdateScanParamsCb wdiUpdateScanParamsCb = NULL;
wpt_uint8* pSendBuffer = NULL;
- wpt_uint16 usDataOffset = 0;
wpt_uint16 usSendSize = 0;
- tUpdateScanParams updateScanParams = {0};
-
+ WDI_Status wdiStatus;
/*-------------------------------------------------------------------------
Sanity check
@@ -23020,33 +23018,25 @@
WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_INFO,
"Begin WDI Update Scan Parameters");
- /*-----------------------------------------------------------------------
- Get message buffer
- -----------------------------------------------------------------------*/
- if (( WDI_STATUS_SUCCESS != WDI_GetMessageBuffer( pWDICtx, WDI_UPDATE_SCAN_PARAMS_REQ,
- sizeof(updateScanParams),
- &pSendBuffer, &usDataOffset, &usSendSize))||
- ( usSendSize < (usDataOffset + sizeof(updateScanParams) )))
- {
- WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
- "Unable to get send buffer in Update Scan Params req %x %x %x",
- pEventData, pwdiUpdateScanParams, wdiUpdateScanParamsCb);
- WDI_ASSERT(0);
- return WDI_STATUS_E_FAILURE;
- }
//
// Fill updateScanParams from pwdiUpdateScanParams->wdiUpdateScanParamsInfo
//
if ( pWDICtx->wlanVersion.revision < 1 )
{
- WDI_PackUpdateScanParamsReq( pWDICtx, pwdiUpdateScanParams,
+ wdiStatus = WDI_PackUpdateScanParamsReq( pWDICtx, pwdiUpdateScanParams,
&pSendBuffer, &usSendSize);
}
else
{
- WDI_PackUpdateScanParamsReqEx( pWDICtx, pwdiUpdateScanParams,
- &pSendBuffer, &usSendSize);
+ wdiStatus = WDI_PackUpdateScanParamsReqEx( pWDICtx, pwdiUpdateScanParams,
+ &pSendBuffer, &usSendSize);
+ }
+
+ if(WDI_STATUS_SUCCESS != wdiStatus)
+ {
+ //memory allocation failed
+ return WDI_STATUS_E_FAILURE;
}
/*-------------------------------------------------------------------------