diff --git a/mgmt/ais_fsm.c b/mgmt/ais_fsm.c
index ccaa072..64825d4 100644
--- a/mgmt/ais_fsm.c
+++ b/mgmt/ais_fsm.c
@@ -446,6 +446,10 @@
 	/* 4 <2> Setup corresponding STA_RECORD_T */
 	prStaRec = bssCreateStaRecFromBssDesc(prAdapter,
 					      STA_TYPE_LEGACY_AP, prAdapter->prAisBssInfo->ucBssIndex, prBssDesc);
+	if (!prStaRec) {
+		DBGLOG(AIS, ERROR, "prStaRec is NULL!\n");
+		return;
+	}
 
 	prAisFsmInfo->prTargetStaRec = prStaRec;
 
@@ -680,7 +684,10 @@
 	/* 4 <2> Setup corresponding STA_RECORD_T */
 	prStaRec = bssCreateStaRecFromBssDesc(prAdapter,
 					      STA_TYPE_ADHOC_PEER, prAdapter->prAisBssInfo->ucBssIndex, prBssDesc);
-
+	if (!prStaRec) {
+		DBGLOG(AIS, ERROR, "prStaRec is NULL!\n");
+		return;
+	}
 	prStaRec->fgIsMerging = TRUE;
 
 	prAisFsmInfo->prTargetStaRec = prStaRec;
diff --git a/mgmt/p2p_func.c b/mgmt/p2p_func.c
index e58c793..361ec63 100644
--- a/mgmt/p2p_func.c
+++ b/mgmt/p2p_func.c
@@ -4121,9 +4121,13 @@
 				cnmMgtPktFree(prAdapter, prP2pProbeRspInfo->prProbeRspMsduTemplate);
 
 			prP2pProbeRspInfo->prProbeRspMsduTemplate = cnmMgtPktAlloc(prAdapter, u4BcnBufLen);
+			if (!prP2pProbeRspInfo->prProbeRspMsduTemplate) {
+				DBGLOG(P2P, ERROR, "cnmMgtPktAlloc fail!\n");
+				rWlanStatus = WLAN_STATUS_FAILURE;
+				break;
+			}
 
 			prMsduInfo = prP2pProbeRspInfo->prProbeRspMsduTemplate;
-
 			prMsduInfo->eSrc = TX_PACKET_MGMT;
 			prMsduInfo->ucStaRecIndex = 0xFF;
 			prMsduInfo->ucBssIndex = prP2pBssInfo->ucBssIndex;
diff --git a/nic/nic_tx.c b/nic/nic_tx.c
index 3f7f54c..a4eb754 100644
--- a/nic/nic_tx.c
+++ b/nic/nic_tx.c
@@ -3368,7 +3368,10 @@
 		return;
 
 	prStaRec = cnmGetStaRecByIndex(prAdapter, ucStaRecIndex);
-	ASSERT(prStaRec);
+	if (!prStaRec) {
+		DBGLOG(TX, WARN, "prStaRec is NULL!\n");
+		return;
+	}
 
 	QUEUE_CONCATENATE_QUEUES(&prAdapter->rStaPsQueue[ucStaRecIndex], prQue);
 	QUEUE_REMOVE_HEAD(&prAdapter->rStaPsQueue[ucStaRecIndex], prQueueEntry, P_QUE_ENTRY_T);
diff --git a/os/linux/gl_kal.c b/os/linux/gl_kal.c
index b67cfaa..fbf3e26 100644
--- a/os/linux/gl_kal.c
+++ b/os/linux/gl_kal.c
@@ -4056,15 +4056,17 @@
 UINT_32 kalWriteToFile(const PUINT_8 pucPath, BOOLEAN fgDoAppend, PUINT_8 pucData, UINT_32 u4Size)
 {
 	struct file *file = NULL;
-	UINT_32 ret;
+	UINT_32 ret = 0; /* size been written */
 	UINT_32 u4Flags = 0;
 
 	if (fgDoAppend)
 		u4Flags = O_APPEND;
 
 	file = kalFileOpen(pucPath, O_WRONLY | O_CREAT | u4Flags, S_IRWXU);
-	ret = kalFileWrite(file, 0, pucData, u4Size);
-	kalFileClose(file);
+	if (file) {
+		ret = kalFileWrite(file, 0, pucData, u4Size);
+		kalFileClose(file);
+	}
 
 	return ret;
 }
diff --git a/os/linux/gl_p2p_kal.c b/os/linux/gl_p2p_kal.c
index 3fe22c3..f1b32e4 100644
--- a/os/linux/gl_p2p_kal.c
+++ b/os/linux/gl_p2p_kal.c
@@ -949,6 +949,10 @@
 		rRfChannelInfo.ucChannelNum = u4ChannelNum;
 
 		prIEEE80211ChnlStruct = kalP2pFuncGetChannelEntry(prGlueP2pInfo, &rRfChannelInfo);
+		if (!prIEEE80211ChnlStruct) {
+			DBGLOG(P2P, ERROR, "prIEEE80211ChnlStruct is NULL!\n");
+			break;
+		}
 
 		kalP2pFuncGetChannelType(eSco, &eChnlType);
 
diff --git a/os/linux/hif/usb/usb.c b/os/linux/hif/usb/usb.c
index 9fae786..9c882d0 100644
--- a/os/linux/hif/usb/usb.c
+++ b/os/linux/hif/usb/usb.c
@@ -234,8 +234,10 @@
 
 	ASSERT(intf);
 	prGlueInfo  = (P_GLUE_INFO_T)usb_get_intfdata(intf);
-
-	glUsbSetState(&prGlueInfo->rHifInfo, USB_STATE_LINK_DOWN);
+	if (prGlueInfo)
+		glUsbSetState(&prGlueInfo->rHifInfo, USB_STATE_LINK_DOWN);
+	else
+		DBGLOG(HAL, ERROR, "prGlueInfo is NULL!!\n");
 
 	if (g_fgDriverProbed)
 		pfWlanRemove();
@@ -288,6 +290,10 @@
 	P_GLUE_INFO_T prGlueInfo = (P_GLUE_INFO_T)usb_get_intfdata(intf);
 
 	DBGLOG(HAL, STATE, "mtk_usb_resume()\n");
+	if (!prGlueInfo) {
+		DBGLOG(HAL, ERROR, "prGlueInfo is NULL!\n");
+		return -EFAULT;
+	}
 
 	/* NOTE: USB bus may not really do suspend and resume*/
 	ret = usb_control_msg(prGlueInfo->rHifInfo.udev,
@@ -614,6 +620,10 @@
 	INIT_LIST_HEAD(prHead);
 
 	prUsbReqs = kcalloc(u4Cnt, sizeof(struct _USB_REQ_T), GFP_ATOMIC);
+	if (!prUsbReqs) {
+		DBGLOG(HAL, ERROR, "kcalloc fail!\n");
+		return NULL;
+	}
 	prUsbReq = prUsbReqs;
 
 	for (i = 0; i < u4Cnt; ++i) {
