[DTV00857290][[DTV][Coverity Scanned Code Defect] 15367: Out-of-bounds write]

[Description]
Fix
cid 361761, 361762 "Dereference before null check" in p2p_dev_fsm.c

Change-Id: I8984c21157712670b79f7f1eaa2887c5495c32e8
Signed-off-by: Danny Wu <danny.wu@mediatek.com>
CR-Id: DTV00857290
(cherry picked from commit 36fe728b5510d58ac98cb59eb91f0f6742382e25)
diff --git a/mgmt/p2p_dev_fsm.c b/mgmt/p2p_dev_fsm.c
index 279f11b..0e8c855 100644
--- a/mgmt/p2p_dev_fsm.c
+++ b/mgmt/p2p_dev_fsm.c
@@ -90,34 +90,35 @@
 
 		prP2pBssInfo = cnmGetBssInfoAndInit(prAdapter, NETWORK_TYPE_P2P, TRUE);
 
-		COPY_MAC_ADDR(prP2pBssInfo->aucOwnMacAddr, prAdapter->rMyMacAddr);
-		prP2pBssInfo->aucOwnMacAddr[0] ^= 0x2;	/* change to local administrated address */
+		if (prP2pBssInfo != NULL) {
+			COPY_MAC_ADDR(prP2pBssInfo->aucOwnMacAddr, prAdapter->rMyMacAddr);
+			prP2pBssInfo->aucOwnMacAddr[0] ^= 0x2;	/* change to local administrated address */
 
-		prP2pDevFsmInfo->ucBssIndex = prP2pBssInfo->ucBssIndex;
+			prP2pDevFsmInfo->ucBssIndex = prP2pBssInfo->ucBssIndex;
 
-		prP2pBssInfo->eCurrentOPMode = OP_MODE_P2P_DEVICE;
-		prP2pBssInfo->ucConfigAdHocAPMode = AP_MODE_11G_P2P;
-		prP2pBssInfo->u2HwDefaultFixedRateCode = RATE_OFDM_6M;
+			prP2pBssInfo->eCurrentOPMode = OP_MODE_P2P_DEVICE;
+			prP2pBssInfo->ucConfigAdHocAPMode = AP_MODE_11G_P2P;
+			prP2pBssInfo->u2HwDefaultFixedRateCode = RATE_OFDM_6M;
 
-		prP2pBssInfo->eBand = BAND_2G4;
-		prP2pBssInfo->eDBDCBand = ENUM_BAND_0;
-		prP2pBssInfo->ucWmmQueSet = DBDC_2G_WMM_INDEX;
+			prP2pBssInfo->eBand = BAND_2G4;
+			prP2pBssInfo->eDBDCBand = ENUM_BAND_0;
+			prP2pBssInfo->ucWmmQueSet = DBDC_2G_WMM_INDEX;
 
-		prP2pBssInfo->ucPhyTypeSet = prAdapter->rWifiVar.ucAvailablePhyTypeSet & PHY_TYPE_SET_802_11GN;
+			prP2pBssInfo->ucPhyTypeSet = prAdapter->rWifiVar.ucAvailablePhyTypeSet & PHY_TYPE_SET_802_11GN;
 
-		prP2pBssInfo->ucNonHTBasicPhyType = (UINT_8)
-		    rNonHTApModeAttributes[prP2pBssInfo->ucConfigAdHocAPMode].ePhyTypeIndex;
-		prP2pBssInfo->u2BSSBasicRateSet =
-		    rNonHTApModeAttributes[prP2pBssInfo->ucConfigAdHocAPMode].u2BSSBasicRateSet;
+			prP2pBssInfo->ucNonHTBasicPhyType = (UINT_8)
+			    rNonHTApModeAttributes[prP2pBssInfo->ucConfigAdHocAPMode].ePhyTypeIndex;
+			prP2pBssInfo->u2BSSBasicRateSet =
+			    rNonHTApModeAttributes[prP2pBssInfo->ucConfigAdHocAPMode].u2BSSBasicRateSet;
 
-		prP2pBssInfo->u2OperationalRateSet =
-		    rNonHTPhyAttributes[prP2pBssInfo->ucNonHTBasicPhyType].u2SupportedRateSet;
-		prP2pBssInfo->u4PrivateData = 0;/* TH3 Huang */
+			prP2pBssInfo->u2OperationalRateSet =
+			    rNonHTPhyAttributes[prP2pBssInfo->ucNonHTBasicPhyType].u2SupportedRateSet;
+			prP2pBssInfo->u4PrivateData = 0;/* TH3 Huang */
 
-		rateGetDataRatesFromRateSet(prP2pBssInfo->u2OperationalRateSet,
+			rateGetDataRatesFromRateSet(prP2pBssInfo->u2OperationalRateSet,
 					    prP2pBssInfo->u2BSSBasicRateSet,
 					    prP2pBssInfo->aucAllSupportedRates, &prP2pBssInfo->ucAllSupportedRatesLen);
-
+		}
 		prP2pChnlReqInfo = &prP2pDevFsmInfo->rChnlReqInfo;
 		LINK_INITIALIZE(&prP2pChnlReqInfo->rP2pChnlReqLink);
 
@@ -676,6 +677,8 @@
 
 	do {
 		ASSERT((prAdapter != NULL) && (prMsgHdr != NULL) && (prP2pDevFsmInfo != NULL));
+		if ((prAdapter == NULL) || (prMsgHdr == NULL) || (prP2pDevFsmInfo == NULL))
+			break;
 
 		prMsgChGrant = (P_MSG_CH_GRANT_T) prMsgHdr;
 		prChnlReqInfo = &(prP2pDevFsmInfo->rChnlReqInfo);