summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2016-10-31 10:21:39 +0800
committerFu Siyuan <siyuan.fu@intel.com>2017-05-18 13:59:43 +0800
commitbe093936a6b9192da4bb2d1bc5bf3d59bd451f8f (patch)
tree79c84f9ca218a28e8a662d2b5221248a4683a32a
parente136824a6a2fd27488e0d88d63d2c78c4101392b (diff)
downloadedk2-be093936a6b9192da4bb2d1bc5bf3d59bd451f8f.tar.gz
edk2-be093936a6b9192da4bb2d1bc5bf3d59bd451f8f.tar.bz2
edk2-be093936a6b9192da4bb2d1bc5bf3d59bd451f8f.zip
NetworkPkg: Check for NULL pointer before dereference it.
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> (cherry picked from commit b3400560603bcfaadc08e82a846933446b5afed3)
-rw-r--r--NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
index 921a65b801..1e5e75812c 100644
--- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
+++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
@@ -2011,10 +2011,14 @@ EfiPxeBcSetStationIP (
return EFI_INVALID_PARAMETER;
}
- if (!Mode->UsingIpv6 && NewStationIp != NULL && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0]))) {
- return EFI_INVALID_PARAMETER;
+ if (!Mode->UsingIpv6 && NewStationIp != NULL) {
+ if (IP4_IS_UNSPECIFIED(NTOHL (NewStationIp->Addr[0])) ||
+ IP4_IS_LOCAL_BROADCAST(NTOHL (NewStationIp->Addr[0])) ||
+ (NewSubnetMask != NULL && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0])))) {
+ return EFI_INVALID_PARAMETER;
+ }
}
-
+
if (!Mode->Started) {
return EFI_NOT_STARTED;
}