wlan: fix static analysis issues in HDD files
Fix static analysis issues reported in following files:
prima/CORE/HDD/src/wlan_hdd_main.c
prima/CORE/HDD/src/wlan_hdd_tx_rx.c
prima/CORE/HDD/src/wlan_hdd_wext.c
prima/CORE/HDD/src/wlan_hdd_wmm.c
prima/CORE/HDD/src/wlan_hdd_wowl.c
prima/CORE/SME/src/pmc/pmcApi.c
Change-Id: Ib17858f23478b94b297a955e3cfddb4d3dfda042
CRs-Fixed: 609611
diff --git a/CORE/HDD/src/wlan_hdd_wowl.c b/CORE/HDD/src/wlan_hdd_wowl.c
index 269203d..621164a 100644
--- a/CORE/HDD/src/wlan_hdd_wowl.c
+++ b/CORE/HDD/src/wlan_hdd_wowl.c
@@ -124,7 +124,7 @@
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, "%s: ucPatternMaskSize = 0x%x", __func__,
ptrn->ucPatternMaskSize);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, "%s: Pattern: ", __func__);
- for(i = 0; i<ptrn->ucPatternSize; i++)
+ for(i = 0; i < ptrn->ucPatternSize; i++)
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO," %02X", ptrn->ucPattern[i]);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, "%s: PatternMask: ", __func__);
for(i = 0; i<ptrn->ucPatternMaskSize; i++)
@@ -208,7 +208,7 @@
localPattern.ucPatternMaskSize =
( hdd_parse_hex( ptrn[3] ) * 0x10 ) + hdd_parse_hex( ptrn[4] );
- if(localPattern.ucPatternSize > WOWL_PTRN_MAX_SIZE ||
+ if(localPattern.ucPatternSize > SIR_WOWL_BCAST_PATTERN_MAX_SIZE ||
localPattern.ucPatternMaskSize > WOWL_PTRN_MASK_MAX_SIZE)
{
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -404,7 +404,13 @@
localPattern.ucPatternId = pattern_idx;
localPattern.ucPatternByteOffset = pattern_offset;
localPattern.ucPatternSize = pattern_len;
-
+ if (localPattern.ucPatternSize > SIR_WOWL_BCAST_PATTERN_MAX_SIZE) {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: WoW pattern size (%d) greater than max (%d)",
+ __func__, localPattern.ucPatternSize,
+ SIR_WOWL_BCAST_PATTERN_MAX_SIZE);
+ return VOS_FALSE;
+ }
/* Extract the pattern */
for (i = 0; i < localPattern.ucPatternSize; i++)
{
@@ -428,7 +434,12 @@
return VOS_FALSE;
}
-
+ if (localPattern.ucPatternMaskSize > WOWL_PTRN_MASK_MAX_SIZE) {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: WoW pattern mask size (%d) greater than max (%d)",
+ __func__, localPattern.ucPatternMaskSize, WOWL_PTRN_MASK_MAX_SIZE);
+ return VOS_FALSE;
+ }
/* Extract the pattern mask */
for (i = 0; i < localPattern.ucPatternMaskSize; i++)
{