public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Palmer, Thomas" <thomas.palmer@hpe.com>
To: Jiaxin Wu <jiaxin.wu@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: Samer El-Haj-Mahmoud <Smahmoud@lenovo.com>,
	Long Qin <qin.long@intel.com>,  Ye Ting <ting.ye@intel.com>,
	Fu Siyuan <siyuan.fu@intel.com>
Subject: Re: [staging/HTTPS-TLS][PATCH 2/2] NetworkPkg: Fix potential assert issue
Date: Fri, 29 Jul 2016 22:27:29 +0000	[thread overview]
Message-ID: <CS1PR84MB0151003E673123F0363BB7E6ED010@CS1PR84MB0151.NAMPRD84.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <1468215775-33448-3-git-send-email-jiaxin.wu@intel.com>

Reviewed by Thomas Palmer <thomas.palmer@hpe.com>

-----Original Message-----
From: Jiaxin Wu [mailto:jiaxin.wu@intel.com] 
Sent: Monday, July 11, 2016 12:43 AM
To: edk2-devel@lists.01.org
Cc: Palmer, Thomas <thomas.palmer@hpe.com>; Samer El-Haj-Mahmoud <Smahmoud@lenovo.com>; Long Qin <qin.long@intel.com>; Ye Ting <ting.ye@intel.com>; Fu Siyuan <siyuan.fu@intel.com>
Subject: [staging/HTTPS-TLS][PATCH 2/2] NetworkPkg: Fix potential assert issue

This patch is used to fix potential assert issue when connection failed or buffer allocation failed.

Cc: Palmer Thomas <thomas.palmer@hpe.com>
Cc: Samer El-Haj-Mahmoud <Smahmoud@lenovo.com>
Cc: Long Qin <qin.long@intel.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
---
 NetworkPkg/HttpDxe/HttpsSupport.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSupport.c
index 36f658c..d746972 100644
--- a/NetworkPkg/HttpDxe/HttpsSupport.c
+++ b/NetworkPkg/HttpDxe/HttpsSupport.c
@@ -874,11 +874,14 @@ TlsReceiveOnePdu (
     Status = EFI_OUT_OF_RESOURCES;
     goto ON_EXIT;
   }
 
   Header = NetbufAllocSpace (PduHdr, Len, NET_BUF_TAIL);
-  ASSERT (Header != NULL);
+  if (Header == NULL) {
+    Status = EFI_OUT_OF_RESOURCES;
+    goto ON_EXIT;
+  }
 
   //
   // First step, receive one TLS header.
   //
   Status = TlsCommonReceive (HttpInstance, PduHdr, Timeout); @@ -899,12 +902,10 @@ TlsReceiveOnePdu (
     InsertTailList (NbufList, &PduHdr->List);
   } else {
     Status = EFI_PROTOCOL_ERROR;
     goto ON_EXIT;
   }
-
-  ASSERT(Header != NULL);
     
   Len = SwapBytes16(RecordHeader.Length);
   if (Len == 0) {
     //
     // No TLS playload.
@@ -1184,11 +1185,13 @@ TlsConnectSession (
     if(HttpInstance->TlsSessionState == EfiTlsSessionError) {  
       return EFI_ABORTED;    
     }
   }
 
-  ASSERT(HttpInstance->TlsSessionState == EfiTlsSessionDataTransferring);
+  if (HttpInstance->TlsSessionState != EfiTlsSessionDataTransferring) {
+    Status = EFI_ABORTED;
+  }
 
   return Status;
 }
 
 /**
@@ -1572,11 +1575,14 @@ HttpsReceive (
     //
     ASSERT (((TLSRecordHeader *) (TempFragment.Bulk))->ContentType == TLS_CONTENT_TYPE_APPLICATION_DATA);
     
     BufferInSize = ((TLSRecordHeader *) (TempFragment.Bulk))->Length;
     BufferIn = AllocateZeroPool (BufferInSize);
-    ASSERT (BufferIn != NULL);
+    if (BufferIn == NULL) {
+      Status = EFI_OUT_OF_RESOURCES;
+      return Status;
+    }
 
     CopyMem (BufferIn, TempFragment.Bulk + sizeof (TLSRecordHeader), BufferInSize);
 
     //
     // Free the buffer in TempFragment.
--
1.9.5.msysgit.1



      parent reply	other threads:[~2016-07-29 22:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1468215775-33448-1-git-send-email-jiaxin.wu@intel.com>
     [not found] ` <1468215775-33448-2-git-send-email-jiaxin.wu@intel.com>
2016-07-29 22:26   ` [staging/HTTPS-TLS][PATCH 1/2] CryptoPkg/Library/TlsLib: Refine the coding style Palmer, Thomas
     [not found] ` <1468215775-33448-3-git-send-email-jiaxin.wu@intel.com>
2016-07-29 22:27   ` Palmer, Thomas [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CS1PR84MB0151003E673123F0363BB7E6ED010@CS1PR84MB0151.NAMPRD84.PROD.OUTLOOK.COM \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox