]> git.proxmox.com Git - mirror_edk2.git/commitdiff
add error handler to pass K8 check
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 30 Jun 2009 07:29:19 +0000 (07:29 +0000)
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 30 Jun 2009 07:29:19 +0000 (07:29 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8687 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/Network/IScsiDxe/IScsiCHAP.c
MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
MdeModulePkg/Universal/Network/IScsiDxe/IScsiTcp4Io.c

index dc6567498fb87fc12b84059e69337397652c553b..a3d20a75f97bdbe7d6f8a3dc101a4911a53c6c0a 100644 (file)
@@ -165,6 +165,7 @@ IScsiCHAPOnRspReceived (
   //\r
   KeyValueList = IScsiBuildKeyValueList ((CHAR8 *) Data, Len);\r
   if (KeyValueList == NULL) {\r
+    gBS->FreePool (Data);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
index 87c214cc69c3ba0295dcf3d72b58a481a31fb0df..4a703a9afbc040f12853946faf76fa54d81b1ba6 100644 (file)
@@ -492,6 +492,7 @@ IScsiPrepareLoginReq (
   }\r
 \r
   LoginReq = (ISCSI_LOGIN_REQUEST *) NetbufAllocSpace (Nbuf, sizeof (ISCSI_LOGIN_REQUEST), NET_BUF_TAIL);\r
+  ASSERT (LoginReq != NULL);\r
   ZeroMem (LoginReq, sizeof (ISCSI_LOGIN_REQUEST));\r
 \r
   //\r
@@ -930,7 +931,7 @@ IScsiReceivePdu (
   NET_BUF         *DataSeg;\r
   UINT32          PadAndCRC32[2];\r
 \r
-  NbufList = AllocatePool (sizeof (LIST_ENTRY    ));\r
+  NbufList = AllocatePool (sizeof (LIST_ENTRY));\r
   if (NbufList == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
@@ -943,11 +944,12 @@ IScsiReceivePdu (
   Len     = sizeof (ISCSI_BASIC_HEADER) + (HeaderDigest ? sizeof (UINT32) : 0);\r
   PduHdr  = NetbufAlloc (Len);\r
   if (PduHdr == NULL) {\r
-    Status = EFI_OUT_OF_RESOURCES;\r
-    goto ON_EXIT;\r
+    gBS->FreePool (NbufList);\r
+    return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
   Header = NetbufAllocSpace (PduHdr, Len, NET_BUF_TAIL);\r
+  ASSERT (Header != NULL);\r
   InsertTailList (NbufList, &PduHdr->List);\r
 \r
   //\r
@@ -1006,8 +1008,7 @@ IScsiReceivePdu (
       // The first to receive the useful data. The second to receive the padding.\r
       //\r
       Fragment[1].Len   = PadLen + (DataDigest ? sizeof (UINT32) : 0);\r
-      Fragment[1].Bulk  = (UINT8 *) ((UINTN) &PadAndCRC32[1] - PadLen);\r
-\r
+      Fragment[1].Bulk  = (UINT8 *)((UINTN) &PadAndCRC32[0] + (4 - PadLen));\r
       FragmentCount     = 2;\r
     } else {\r
       FragmentCount = 1;\r
@@ -1226,9 +1227,10 @@ IScsiCheckOpParams (
   //\r
   // FirstBurstLength, result function is Minimum. Irrelevant when InitialR2T=Yes and\r
   // ImmediateData=No.\r
+  // This Key/Value is negotiation type.\r
   //\r
   Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_FIRST_BURST_LENGTH);\r
-  if ((Value == NULL) && !(Session->InitialR2T && !Session->ImmediateData)) {\r
+  if (Value == NULL) {\r
     goto ON_ERROR;\r
   }\r
 \r
@@ -1455,7 +1457,7 @@ IScsiBuildKeyValueList (
   LIST_ENTRY            *ListHead;\r
   ISCSI_KEY_VALUE_PAIR  *KeyValuePair;\r
 \r
-  ListHead = AllocatePool (sizeof (LIST_ENTRY    ));\r
+  ListHead = AllocatePool (sizeof (LIST_ENTRY));\r
   if (ListHead == NULL) {\r
     return NULL;\r
   }\r
@@ -1804,6 +1806,10 @@ IScsiNewScsiCmdPdu (
   }\r
 \r
   ScsiCmd = (SCSI_COMMAND *) NetbufAllocSpace (PduHeader, Length, NET_BUF_TAIL);\r
+  if (ScsiCmd == NULL) {\r
+    NetbufFree (PduHeader);\r
+    return NULL;\r
+  }    \r
   Header  = (ISCSI_ADDITIONAL_HEADER *) (ScsiCmd + 1);\r
 \r
   ZeroMem (ScsiCmd, Length);\r
@@ -1885,7 +1891,7 @@ IScsiNewScsiCmdPdu (
       goto ON_EXIT;\r
     }\r
 \r
-    NbufList = AllocatePool (sizeof (LIST_ENTRY    ));\r
+    NbufList = AllocatePool (sizeof (LIST_ENTRY));\r
     if (NbufList == NULL) {\r
       NetbufFree (PduHeader);\r
       NetbufFree (DataSeg);\r
@@ -1910,7 +1916,7 @@ IScsiNewScsiCmdPdu (
       ) {\r
     //\r
     // Unsolicited data out sequence is not allowed,\r
-    // or FirstBustLength data is already sent out by immediate data\r
+    // or FirstBurstLength data is already sent out by immediate data\r
     // or all the OUT data accompany this SCSI packet is sent as\r
     // immediate data, the final flag should be set on this SCSI Command\r
     // PDU.\r
@@ -1951,7 +1957,7 @@ IScsiNewDataOutPdu (
   ISCSI_SCSI_DATA_OUT *DataOutHdr;\r
   ISCSI_XFER_CONTEXT  *XferContext;\r
 \r
-  NbufList = AllocatePool (sizeof (LIST_ENTRY    ));\r
+  NbufList = AllocatePool (sizeof (LIST_ENTRY));\r
   if (NbufList == NULL) {\r
     return NULL;\r
   }\r
@@ -1972,6 +1978,7 @@ IScsiNewDataOutPdu (
   InsertTailList (NbufList, &PduHdr->List);\r
 \r
   DataOutHdr  = (ISCSI_SCSI_DATA_OUT *) NetbufAllocSpace (PduHdr, sizeof (ISCSI_SCSI_DATA_OUT), NET_BUF_TAIL);\r
+  ASSERT (DataOutHdr != NULL);\r
   XferContext = &Tcb->XferContext;\r
 \r
   ZeroMem (DataOutHdr, sizeof (ISCSI_SCSI_DATA_OUT));\r
@@ -2036,7 +2043,7 @@ IScsiGenerateDataOutPduSequence (
   ISCSI_CONNECTION    *Conn;\r
   ISCSI_XFER_CONTEXT  *XferContext;\r
 \r
-  PduList = AllocatePool (sizeof (LIST_ENTRY    ));\r
+  PduList = AllocatePool (sizeof (LIST_ENTRY));\r
   if (PduList == NULL) {\r
     return NULL;\r
   }\r
index 2278fe793779d5d8776c7c6479301c47f1fcf1a0..ee734d991427ad6b0d83815db42afe1af1e26fe0 100644 (file)
@@ -480,7 +480,7 @@ Tcp4IoReceive (
   }\r
 \r
 ON_EXIT:\r
-\r
+  Tcp4Io->RxToken.Packet.RxData = NULL;\r
   gBS->FreePool (Fragment);\r
 \r
   return Status;\r