Validate the p2pIeOffset in beacon template.
The p2pIeOffset should be greater than timIeOffset.
Adding required checks for validating the p2pIeOffset before
sending the beacon template to the FW.
Change-Id: I00fdbb5b9769fd1c190452ad85c46e60a78b9606
CRs-Fixed: 443901
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index a69837c..e1ee775 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -11661,6 +11661,18 @@
pwdiSendBeaconParams->wdiSendBeaconParamsInfo.beaconLength);
halSendBeaconReq.sendBeaconParam.timIeOffset =
pwdiSendBeaconParams->wdiSendBeaconParamsInfo.timIeOffset;
+ /* usP2PIeOffset should be atleast greater than timIeOffset */
+ if ((pwdiSendBeaconParams->wdiSendBeaconParamsInfo.usP2PIeOffset != 0 ) &&
+ (pwdiSendBeaconParams->wdiSendBeaconParamsInfo.usP2PIeOffset <
+ pwdiSendBeaconParams->wdiSendBeaconParamsInfo.timIeOffset))
+ {
+ WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
+ "Invalid usP2PIeOffset %hu",
+ pwdiSendBeaconParams->wdiSendBeaconParamsInfo.usP2PIeOffset);
+ WDI_ASSERT(0);
+ return WDI_STATUS_E_FAILURE;
+ }
+
halSendBeaconReq.sendBeaconParam.p2pIeOffset =
pwdiSendBeaconParams->wdiSendBeaconParamsInfo.usP2PIeOffset;