wlan: Resolve static analysis issues
Resolved static analysis issues, variable initialization,
return on failure, validate data before using.
Change-Id: Ia6ffd422ae3f9bc8419f32aa914839a091841335
CRs-Fixed: 975049
diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c
index cc39dd9..848e5f7 100644
--- a/CORE/SYS/legacy/src/utils/src/parserApi.c
+++ b/CORE/SYS/legacy/src/utils/src/parserApi.c
@@ -3079,14 +3079,19 @@
retStatus = eSIR_FAILURE;
goto err_bcnrep;
}
- *pos = SIR_MAC_RATESET_EID;
- pos++;
- *pos = eseBcnReportMandatoryIe.supportedRates.numRates;
- pos++;
- vos_mem_copy(pos, (tANI_U8*)eseBcnReportMandatoryIe.supportedRates.rate,
- eseBcnReportMandatoryIe.supportedRates.numRates);
- pos += eseBcnReportMandatoryIe.supportedRates.numRates;
- freeBytes -= (1 + 1 + eseBcnReportMandatoryIe.supportedRates.numRates);
+ if (eseBcnReportMandatoryIe.supportedRates.numRates <=
+ SIR_MAC_RATESET_EID_MAX) {
+ *pos = SIR_MAC_RATESET_EID;
+ pos++;
+ *pos = eseBcnReportMandatoryIe.supportedRates.numRates;
+ pos++;
+ vos_mem_copy(pos,
+ (tANI_U8*)eseBcnReportMandatoryIe.supportedRates.rate,
+ eseBcnReportMandatoryIe.supportedRates.numRates);
+ pos += eseBcnReportMandatoryIe.supportedRates.numRates;
+ freeBytes -= (1 + 1 +
+ eseBcnReportMandatoryIe.supportedRates.numRates);
+ }
}
/* Fill FH Parameter set IE */