MdeModulePkg: Update IP4 stack drivers for classless address unicast check.

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>
This commit is contained in:
Fu Siyuan
2016-10-27 09:23:08 +08:00
parent 3289dcba45
commit 01b5ac880f
14 changed files with 83 additions and 77 deletions

View File

@@ -827,7 +827,9 @@ Udp4ValidateTxToken (
if (TxData->GatewayAddress != NULL) {
CopyMem (&GatewayAddress, TxData->GatewayAddress, sizeof (IP4_ADDR));
if (!NetIp4IsUnicast (NTOHL (GatewayAddress), 0)) {
if (!Instance->ConfigData.UseDefaultAddress &&
(EFI_NTOHL(Instance->ConfigData.SubnetMask) != 0) &&
!NetIp4IsUnicast (NTOHL (GatewayAddress), EFI_NTOHL(Instance->ConfigData.SubnetMask))) {
//
// The specified GatewayAddress is not a unicast IPv4 address while it's not 0.
//
@@ -842,7 +844,10 @@ Udp4ValidateTxToken (
CopyMem (&SourceAddress, &UdpSessionData->SourceAddress, sizeof (IP4_ADDR));
if ((SourceAddress != 0) && !NetIp4IsUnicast (HTONL (SourceAddress), 0)) {
if ((SourceAddress != 0) &&
!Instance->ConfigData.UseDefaultAddress &&
(EFI_NTOHL(Instance->ConfigData.SubnetMask) != 0) &&
!NetIp4IsUnicast (HTONL (SourceAddress), EFI_NTOHL(Instance->ConfigData.SubnetMask))) {
//
// Check whether SourceAddress is a valid IPv4 address in case it's not zero.
// The configured station address is used if SourceAddress is zero.