Revision: 17923
          http://sourceforge.net/p/edk2/code/17923
Author:   fanwang2
Date:     2015-07-10 09:00:33 +0000 (Fri, 10 Jul 2015)
Log Message:
-----------
NetworkPkg: Code logic optimization for DnsDxe and HttpDxe driver

Revise some errors which may lead NULL pointer be dereferenced:
* DnsDhcp.c: Paralist may be used without any initialized
* DnsHeader and RcvString may be null but be dereferenced
* HttpDriver.c: revise an if judgment
* HttpImpl.c: add a judgment to avoid null dereferenced

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: fanwang2 <[email protected]>
Reviewed-by: Ye Ting <[email protected]>
Reviewed-by: Jiaxin Wu <[email protected]>

Modified Paths:
--------------
    trunk/edk2/NetworkPkg/DnsDxe/DnsDhcp.c
    trunk/edk2/NetworkPkg/DnsDxe/DnsImpl.c
    trunk/edk2/NetworkPkg/HttpDxe/HttpDriver.c
    trunk/edk2/NetworkPkg/HttpDxe/HttpImpl.c

Modified: trunk/edk2/NetworkPkg/DnsDxe/DnsDhcp.c
===================================================================
--- trunk/edk2/NetworkPkg/DnsDxe/DnsDhcp.c      2015-07-10 06:57:22 UTC (rev 
17922)
+++ trunk/edk2/NetworkPkg/DnsDxe/DnsDhcp.c      2015-07-10 09:00:33 UTC (rev 
17923)
@@ -301,6 +301,8 @@
   Data                       = NULL;
   InterfaceInfo              = NULL;
 
+  ZeroMem ((UINT8 *) ParaList, sizeof (ParaList));
+
   ZeroMem (&MnpConfigData, sizeof (EFI_MANAGED_NETWORK_CONFIG_DATA));
   
   ZeroMem (&DnsServerInfor, sizeof (DNS4_SERVER_INFOR));

Modified: trunk/edk2/NetworkPkg/DnsDxe/DnsImpl.c
===================================================================
--- trunk/edk2/NetworkPkg/DnsDxe/DnsImpl.c      2015-07-10 06:57:22 UTC (rev 
17922)
+++ trunk/edk2/NetworkPkg/DnsDxe/DnsImpl.c      2015-07-10 09:00:33 UTC (rev 
17923)
@@ -1049,6 +1049,7 @@
       continue;
     } else {
       TxString = NetbufGetByte (Packet, 0, NULL);
+      ASSERT (TxString != NULL);
       DnsHeader = (DNS_HEADER *) TxString;
       QueryName = (CHAR8 *) (TxString + sizeof (*DnsHeader));
       QuerySection = (DNS_QUERY_SECTION *) (QueryName + AsciiStrLen 
(QueryName) + 1);
@@ -1426,7 +1427,8 @@
   ASSERT (Packet != NULL);
   
   RcvString = NetbufGetByte (Packet, 0, NULL);
-
+  ASSERT (RcvString != NULL);
+  
   //
   // Parse Dns Response
   //

Modified: trunk/edk2/NetworkPkg/HttpDxe/HttpDriver.c
===================================================================
--- trunk/edk2/NetworkPkg/HttpDxe/HttpDriver.c  2015-07-10 06:57:22 UTC (rev 
17922)
+++ trunk/edk2/NetworkPkg/HttpDxe/HttpDriver.c  2015-07-10 09:00:33 UTC (rev 
17923)
@@ -79,7 +79,7 @@
   IN HTTP_SERVICE     *HttpService
   )
 {
-  if (HttpService != NULL) {
+  if (HttpService == NULL) {
     return ;
   }
 

Modified: trunk/edk2/NetworkPkg/HttpDxe/HttpImpl.c
===================================================================
--- trunk/edk2/NetworkPkg/HttpDxe/HttpImpl.c    2015-07-10 06:57:22 UTC (rev 
17922)
+++ trunk/edk2/NetworkPkg/HttpDxe/HttpImpl.c    2015-07-10 09:00:33 UTC (rev 
17923)
@@ -766,6 +766,10 @@
   HTTP_TOKEN_WRAP               *ValueInItem;
   UINTN                         HdrLen;
 
+  if (Wrap == NULL || Wrap->HttpInstance == NULL) {
+    return EFI_INVALID_PARAMETER;
+  }
+  
   HttpInstance = Wrap->HttpInstance;
   Token = Wrap->HttpToken;
 


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to