From be093936a6b9192da4bb2d1bc5bf3d59bd451f8f Mon Sep 17 00:00:00 2001 From: Fu Siyuan Date: Mon, 31 Oct 2016 10:21:39 +0800 Subject: NetworkPkg: Check for NULL pointer before dereference it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Reviewed-by: Ye Ting Reviewed-by: Wu Jiaxin (cherry picked from commit b3400560603bcfaadc08e82a846933446b5afed3) --- NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 10 +++++++--- 1 file 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; } -- cgit v1.2.3