]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg: Check for NULL pointer before dereference it.
authorFu Siyuan <siyuan.fu@intel.com>
Mon, 31 Oct 2016 02:21:39 +0000 (10:21 +0800)
committerFu Siyuan <siyuan.fu@intel.com>
Mon, 31 Oct 2016 08:04:02 +0000 (16:04 +0800)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c

index 52095c5f76c9e03e8f31b008b4488df1c9ba45f2..0552174ac6553353b429fe4cfca2323132545eab 100644 (file)
@@ -2013,10 +2013,14 @@ EfiPxeBcSetStationIP (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if (!Mode->UsingIpv6 && NewStationIp != NULL && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0]))) {\r
-    return EFI_INVALID_PARAMETER;\r
+  if (!Mode->UsingIpv6 && NewStationIp != NULL) {\r
+    if (IP4_IS_UNSPECIFIED(NTOHL (NewStationIp->Addr[0])) || \r
+        IP4_IS_LOCAL_BROADCAST(NTOHL (NewStationIp->Addr[0])) ||\r
+        (NewSubnetMask != NULL && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0])))) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
   }\r
-\r
+  \r
   if (!Mode->Started) {\r
     return EFI_NOT_STARTED;\r
   }\r