]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg: Code logic optimization for DnsDxe and HttpDxe driver
authorfanwang2 <fan.wang@intel.com>
Fri, 10 Jul 2015 09:00:33 +0000 (09:00 +0000)
committerfanwang2 <fanwang2@Edk2>
Fri, 10 Jul 2015 09:00:33 +0000 (09:00 +0000)
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 <fan.wang@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17923 6f19259b-4bc3-4df7-8a09-765794883524

NetworkPkg/DnsDxe/DnsDhcp.c
NetworkPkg/DnsDxe/DnsImpl.c
NetworkPkg/HttpDxe/HttpDriver.c
NetworkPkg/HttpDxe/HttpImpl.c

index 4607f7b63346bec9a3f4c0eab5083d81ec0a0887..1cc337f0cfdca84b5878f253384c432e7331569a 100644 (file)
@@ -301,6 +301,8 @@ GetDns4ServerFromDhcp4 (
   Data                       = NULL;\r
   InterfaceInfo              = NULL;\r
 \r
+  ZeroMem ((UINT8 *) ParaList, sizeof (ParaList));\r
+\r
   ZeroMem (&MnpConfigData, sizeof (EFI_MANAGED_NETWORK_CONFIG_DATA));\r
   \r
   ZeroMem (&DnsServerInfor, sizeof (DNS4_SERVER_INFOR));\r
index c227093986ba1831e240c21faa530d82a559b710..b196d181cae492a5866f412715b01d48c3f4420f 100644 (file)
@@ -1049,6 +1049,7 @@ IsValidDnsResponse (
       continue;\r
     } else {\r
       TxString = NetbufGetByte (Packet, 0, NULL);\r
+      ASSERT (TxString != NULL);\r
       DnsHeader = (DNS_HEADER *) TxString;\r
       QueryName = (CHAR8 *) (TxString + sizeof (*DnsHeader));\r
       QuerySection = (DNS_QUERY_SECTION *) (QueryName + AsciiStrLen (QueryName) + 1);\r
@@ -1426,7 +1427,8 @@ DnsOnPacketReceived (
   ASSERT (Packet != NULL);\r
   \r
   RcvString = NetbufGetByte (Packet, 0, NULL);\r
-\r
+  ASSERT (RcvString != NULL);\r
+  \r
   //\r
   // Parse Dns Response\r
   //\r
index b65607a4cb4c6a5a4833a9d3ea9d5ec9c8424a3d..43f42e29bf0c975b7dffdddabfb85e3ce6ce5a5b 100644 (file)
@@ -79,7 +79,7 @@ HttpCleanService (
   IN HTTP_SERVICE     *HttpService\r
   )\r
 {\r
-  if (HttpService != NULL) {\r
+  if (HttpService == NULL) {\r
     return ;\r
   }\r
 \r
index 4bd4ac884fdcffdcbe303d998c35178d70202fe9..545fe42332da3ff7cec00b0a57d49221d9683c4f 100644 (file)
@@ -766,6 +766,10 @@ HttpResponseWorker (
   HTTP_TOKEN_WRAP               *ValueInItem;\r
   UINTN                         HdrLen;\r
 \r
+  if (Wrap == NULL || Wrap->HttpInstance == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  \r
   HttpInstance = Wrap->HttpInstance;\r
   Token = Wrap->HttpToken;\r
 \r