Reviewed-by: Ye Ting <[email protected]> 

-----Original Message-----
From: Fu, Siyuan 
Sent: Monday, May 23, 2016 11:06 AM
To: [email protected]
Cc: Ye; Ye, Ting <[email protected]>; Wu; Wu, Jiaxin <[email protected]>
Subject: [Patch] NetworkPkg: update code for NULL pointer check.

This patch updates the HTTP driver to initialize the local variable for NULL 
and check the NULL pointer before dereference it.

Cc: Ye, Ting <[email protected]>
Cc: Wu, Jiaxin <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <[email protected]>
---
 NetworkPkg/HttpDxe/HttpImpl.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c 
index f4ae28a..7ee6613 100644
--- a/NetworkPkg/HttpDxe/HttpImpl.c
+++ b/NetworkPkg/HttpDxe/HttpImpl.c
@@ -253,6 +253,7 @@ EfiHttpRequest (
   // Initializations
   //
   Url = NULL;
+  UrlParser = NULL;
   HostName = NULL;
   RequestMsg = NULL;
   HostNameStr = NULL;
@@ -1063,7 +1064,7 @@ HttpResponseWorker (
     if (SizeofHeaders != 0) {
       HeaderTmp = AllocateZeroPool (SizeofHeaders);
       if (HeaderTmp == NULL) {
-        goto Error;
+        goto Error2;
       }
 
       CopyMem (HeaderTmp, Tmp, SizeofHeaders); @@ -1075,7 +1076,7 @@ 
HttpResponseWorker (
       //
       if (mHttpUtilities == NULL) {
         Status = EFI_NOT_READY;
-        goto Error;
+        goto Error2;
       }
 
       //
@@ -1089,7 +1090,7 @@ HttpResponseWorker (
                                  &HttpMsg->HeaderCount
                                  );
       if (EFI_ERROR (Status)) {
-        goto Error;
+        goto Error2;
       }
 
       FreePool (HttpHeaders);
@@ -1214,7 +1215,7 @@ HttpResponseWorker (
                     &HttpInstance->TimeoutEvent
                     );
     if (EFI_ERROR (Status)) {
-      goto Error;
+      goto Error2;
     }
   }
 
@@ -1223,7 +1224,7 @@ HttpResponseWorker (
   //
   Status = gBS->SetTimer (HttpInstance->TimeoutEvent, TimerRelative, 
HTTP_RESPONSE_TIMEOUT * TICKS_PER_SECOND);
   if (EFI_ERROR (Status)) {
-    goto Error;
+    goto Error2;
   }
 
   //
@@ -1234,7 +1235,7 @@ HttpResponseWorker (
   gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
 
   if (EFI_ERROR (Status)) {
-    goto Error;
+    goto Error2;
   }
 
   FreePool (Wrap);
@@ -1258,7 +1259,9 @@ Exit:
   return Status;
 
 Error2:
-  NetMapInsertHead (&HttpInstance->TxTokens, ValueInItem->HttpToken, 
ValueInItem);
+  if (ValueInItem != NULL) {
+    NetMapInsertHead (&HttpInstance->TxTokens, ValueInItem->HttpToken, 
+ ValueInItem);  }
 
 Error:
   HttpTcpTokenCleanup (Wrap);
--
2.7.4.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to