wlan: Fix Static analysis error
Fix NULL pointer dereference,array bound overflow,
uninitialized accses and Suspicious dereference of pointer.
Change-Id: Ic0d4be5aab4fc6c66e9aff90dc13fd38ddb579b5
CRs-Fixed: 1061646
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index afd5986..ea16399 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -8318,7 +8318,7 @@
tCsrRoamInfo roamInfo;
tANI_U32 roamId = 0;
tANI_U32 current_timestamp, max_time = -1;
- tANI_U32 candidateApCnt, oldestIndex;
+ tANI_U32 candidateApCnt, oldestIndex = 0;
tANI_U8 nilMac[6] = {0};
if (eSIR_SME_SUCCESS == pSmeJoinRsp->statusCode)
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 6f6ec04..9be8337 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -2086,7 +2086,7 @@
tANI_S32 score = 0;
tANI_S32 ap_load = 0;
tANI_S32 normalised_width = PER_ROAM_20MHZ;
- tANI_S32 normalised_rssi;
+ tANI_S32 normalised_rssi = 0;
tANI_S32 channel_weight;
if (bssInfo->rssi) {
/* Calculate % of rssi we are getting
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 3f6e8e3..cce34d5 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -8851,8 +8851,6 @@
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
"Failure in ADD TS REQ Params WDI API, free all the memory " );
- vos_mem_free(pWdaParams->wdaWdiApiMsgParam) ;
- vos_mem_free(pWdaParams);
/* send the failure response back to PE*/
for( i = 0; i < HAL_QOS_NUM_AC_MAX; i++ )
@@ -8862,6 +8860,10 @@
WDA_SendMsg(pWdaParams->pWdaContext, WDA_AGGR_QOS_RSP,
(void *)pAggrAddTsReqParams , 0) ;
+
+ vos_mem_free(pWdaParams->wdaWdiApiMsgParam) ;
+ vos_mem_free(pWdaParams);
+
}
return CONVERT_WDI2VOS_STATUS(status) ;
}
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 693922f..f57d81d 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -27163,10 +27163,17 @@
WDI_PERRoamOffloadScanCb wdiPERRoamOffloadScancb = NULL;
tSetPerRoamConfigReq halPERRoamConfigReq;
+ if (!pEventData) {
+ WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
+ "%s: *pEventdata is null", __func__);
+ WDI_ASSERT(0);
+ return WDI_STATUS_E_FAILURE;
+ }
+
wdiPERRoamOffloadReq = (WDI_PERRoamOffloadScanInfo *)pEventData->pEventData;
wdiPERRoamOffloadScancb = (WDI_PERRoamOffloadScanCb)pEventData->pCBfnc;
- if ((!pEventData) || (!wdiPERRoamOffloadReq)|| (!wdiPERRoamOffloadScancb)) {
+ if (!wdiPERRoamOffloadReq || !wdiPERRoamOffloadScancb) {
WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
"%s: Invalid parameters", __func__);
WDI_ASSERT(0);
@@ -27236,10 +27243,17 @@
WDI_PERRoamTriggerScanInfo *wdiPERRoamTriggerReq;
tStartRoamScanReq halPERRoamTriggerReq;
+ if (!pEventData) {
+ WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
+ "%s: pEventdata is null", __func__);
+ WDI_ASSERT(0);
+ return WDI_STATUS_E_FAILURE;
+ }
+
wdiPERRoamTriggerReq = (WDI_PERRoamTriggerScanInfo *) pEventData->pEventData;
wdiPERRoamTriggerScancb = (WDI_PERRoamTriggerScanCb)pEventData->pCBfnc;
- if ((!pEventData) || (!wdiPERRoamTriggerReq) || (!wdiPERRoamTriggerScancb)) {
+ if (!wdiPERRoamTriggerReq || !wdiPERRoamTriggerScancb) {
WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
"%s: Invalid parameters", __func__);
WDI_ASSERT(0);