Implementation of EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL.\r
\r
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
- Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
UINT32 Len;\r
\r
for (Index = 0, Len = 0; Index < FragmentCount; Index++) {\r
+ if (FragmentTable[Index].FragmentBuffer == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
Len = Len + FragmentTable[Index].FragmentLength;\r
}\r
\r
if (NULL != TcpConfigData) {\r
\r
CopyMem (&Ip, &TcpConfigData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));\r
- if ((Ip != 0) && !NetIp4IsUnicast (NTOHL (Ip), 0)) {\r
+ if (IP4_IS_LOCAL_BROADCAST (NTOHL (Ip))) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
\r
CopyMem (&Ip, &TcpConfigData->AccessPoint.StationAddress, sizeof (IP4_ADDR));\r
CopyMem (&SubnetMask, &TcpConfigData->AccessPoint.SubnetMask, sizeof (IP4_ADDR));\r
- if (!NetIp4IsUnicast (NTOHL (Ip), 0) || !IP4_IS_VALID_NETMASK (NTOHL (SubnetMask))) {\r
+ if (!IP4_IS_VALID_NETMASK (NTOHL (SubnetMask)) ||\r
+ (SubnetMask != 0 && !NetIp4IsUnicast (NTOHL (Ip), NTOHL (SubnetMask)))) {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r