Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Hao A <hao.a.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
\r
Status = HttpGenRequestMessage (HttpMsg, FileUrl, &RequestMsg, &RequestMsgSize);\r
\r
\r
Status = HttpGenRequestMessage (HttpMsg, FileUrl, &RequestMsg, &RequestMsgSize);\r
\r
- if (EFI_ERROR (Status)) {\r
+ if (EFI_ERROR (Status) || NULL == RequestMsg) {\r
+ ASSERT (RequestMsg != NULL);\r
+\r
//\r
// Every request we insert a TxToken and a response call would remove the TxToken.\r
// In cases of PUT/POST, after an initial request-response pair, we would do a\r
//\r
// Every request we insert a TxToken and a response call would remove the TxToken.\r
// In cases of PUT/POST, after an initial request-response pair, we would do a\r
UINTN UrlSize;\r
UINTN RequestMsgSize;\r
\r
UINTN UrlSize;\r
UINTN RequestMsgSize;\r
\r
+ RequestMsg = NULL;\r
+\r
ValueInItem = (HTTP_TOKEN_WRAP *) Item->Value;\r
if (ValueInItem->TcpWrap.IsTxDone) {\r
return EFI_SUCCESS;\r
ValueInItem = (HTTP_TOKEN_WRAP *) Item->Value;\r
if (ValueInItem->TcpWrap.IsTxDone) {\r
return EFI_SUCCESS;\r
);\r
FreePool (Url);\r
\r
);\r
FreePool (Url);\r
\r
- if (EFI_ERROR (Status)){\r
+ if (EFI_ERROR (Status) || NULL == RequestMsg){\r
+ ASSERT (RequestMsg != NULL);\r
+\r
//\r
// Transmit the request message.\r
//\r
//\r
// Transmit the request message.\r
//\r
- if (Status == EFI_BUFFER_TOO_SMALL) {
+ if (EFI_ERROR (Status) && Status != EFI_BUFFER_TOO_SMALL) {
+ return Status;
+ }
+
+ //
+ // Allocate buffer and read the config variable.
+ //
+ CACert = AllocatePool (CACertSize);
+ if (CACert == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
+
+ Status = gRT->GetVariable (
+ EFI_TLS_CA_CERTIFICATE_VARIABLE,
+ &gEfiTlsCaCertificateGuid,
+ NULL,
+ &CACertSize,
+ CACert
+ );
+ if (EFI_ERROR (Status)) {
- // Allocate buffer and read the config variable.
+ // GetVariable still error or the variable is corrupted.
+ // Fall back to the default value.
- CACert = AllocatePool (CACertSize);
- if (CACert == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
-
- Status = gRT->GetVariable (
- EFI_TLS_CA_CERTIFICATE_VARIABLE,
- &gEfiTlsCaCertificateGuid,
- NULL,
- &CACertSize,
- CACert
- );
- if (EFI_ERROR (Status)) {
- //
- // GetVariable still error or the variable is corrupted.
- // Fall back to the default value.
- //
- FreePool (CACert);
- return EFI_NOT_FOUND;
- }
+ ASSERT (CACert != NULL);
+
//
// Enumerate all data and erasing the target item.
//
//
// Enumerate all data and erasing the target item.
//
//
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
//
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ if (DataOut == NULL) {
+ FreePool (BufferOut);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
FreePool (BufferIn);
if (EFI_ERROR (Status)) {
FreePool (BufferIn);
if (EFI_ERROR (Status)) {
//
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
//
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ if (DataOut == NULL) {
+ FreePool (BufferOut);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ if (DataOut == NULL) {
+ FreePool (BufferOut);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
if (BufferOutSize != 0) {
PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
if (BufferOutSize != 0) {
PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ if (DataOut == NULL) {
+ FreePool (BufferOut);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
if (BufferOutSize != 0) {
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
if (BufferOutSize != 0) {
PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ if (DataOut == NULL) {
+ FreePool (BufferOut);
+ return EFI_OUT_OF_RESOURCES;
+ }
+
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);
CopyMem (DataOut, BufferOut, BufferOutSize);
Status = TlsCommonTransmit (HttpInstance, PacketOut);