diff options
author | Fu Siyuan <siyuan.fu@intel.com> | 2016-10-31 10:21:24 +0800 |
---|---|---|
committer | Fu Siyuan <siyuan.fu@intel.com> | 2017-05-18 14:08:15 +0800 |
commit | 0e35b77cee2ab5bcdc2326675225e441adbfb8ec (patch) | |
tree | ac0ec520283d08bad1d3539d15496ca77c78e600 | |
parent | dceda465bf86b1b506f7ed33fc7908063d333727 (diff) | |
download | edk2-0e35b77cee2ab5bcdc2326675225e441adbfb8ec.tar.gz |
MdeModulePkg: 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 e86f363564e79dc719bbeed8ce87271b2972f55d)
-rw-r--r-- | MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c index 41f33e8db1..19ff320d94 100644 --- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c +++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c @@ -2315,11 +2315,15 @@ EfiPxeBcSetStationIP ( if (NewSubnetMask != NULL && !IP4_IS_VALID_NETMASK (NTOHL (NewSubnetMask->Addr[0]))) {
return EFI_INVALID_PARAMETER;
}
-
- if (NewStationIp != NULL && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0]))) {
- return EFI_INVALID_PARAMETER;
- }
+ if (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;
+ }
+ }
+
Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);
Mode = Private->PxeBc.Mode;
|