From 364f4efa444150df3f074f563374dce1e153adc6 Mon Sep 17 00:00:00 2001 From: Zhang Lubo Date: Fri, 8 Apr 2016 09:48:14 +0800 Subject: [PATCH] MdeModulePkg: Add new macros and refine codes Add 2 macros inNetLib.h #define IP4_MASK_MAX 32 #define IP6_PREFIX_MAX 128 we will use these two macros to check the max mask/prefix length, instead of #define IP4_MASK_NUM 33 #define IP6_PREFIX_NUM 129 which means a valid number. This will make the code readability and maintainability. Cc: Subramanian Sriram Cc: Fu Siyuan Cc: Ye Ting Cc: Wu Jiaxin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Zhang Lubo Reviewed-by: Sriram Subramanian --- MdeModulePkg/Include/Library/NetLib.h | 5 ++++- MdeModulePkg/Library/DxeNetLib/DxeNetLib.c | 6 +++--- MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c | 2 +- MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c | 4 ++-- MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c | 2 +- MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Route.c | 10 +++++----- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/MdeModulePkg/Include/Library/NetLib.h b/MdeModulePkg/Include/Library/NetLib.h index b871a857f9..87f393e2de 100644 --- a/MdeModulePkg/Include/Library/NetLib.h +++ b/MdeModulePkg/Include/Library/NetLib.h @@ -52,6 +52,9 @@ typedef UINT16 TCP_PORTNO; #define IP4_MASK_NUM 33 #define IP6_PREFIX_NUM 129 +#define IP4_MASK_MAX 32 +#define IP6_PREFIX_MAX 128 + #define IP6_HOP_BY_HOP 0 #define IP6_DESTINATION 60 #define IP6_ROUTING 43 @@ -230,7 +233,7 @@ typedef struct { #define IP4_IS_MULTICAST(Ip) (((Ip) & 0xF0000000) == 0xE0000000) #define IP4_IS_LOCAL_BROADCAST(Ip) ((Ip) == 0xFFFFFFFF) #define IP4_NET_EQUAL(Ip1, Ip2, NetMask) (((Ip1) & (NetMask)) == ((Ip2) & (NetMask))) -#define IP4_IS_VALID_NETMASK(Ip) (NetGetMaskLength (Ip) != IP4_MASK_NUM) +#define IP4_IS_VALID_NETMASK(Ip) (NetGetMaskLength (Ip) != (IP4_MASK_MAX + 1)) #define IP6_IS_MULTICAST(Ip6) (((Ip6)->Addr[0]) == 0xFF) diff --git a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c index ebc3e125a2..4acd0fad2c 100644 --- a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c +++ b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c @@ -565,7 +565,7 @@ NetGetMaskLength ( { INTN Index; - for (Index = 0; Index < IP4_MASK_NUM; Index++) { + for (Index = 0; Index <= IP4_MASK_MAX; Index++) { if (NetMask == gIp4AllMasks[Index]) { break; } @@ -794,7 +794,7 @@ NetIp6IsNetEqual ( UINT8 Bit; UINT8 Mask; - ASSERT ((Ip1 != NULL) && (Ip2 != NULL) && (PrefixLength < IP6_PREFIX_NUM)); + ASSERT ((Ip1 != NULL) && (Ip2 != NULL) && (PrefixLength <= IP6_PREFIX_MAX)); if (PrefixLength == 0) { return TRUE; @@ -3115,7 +3115,7 @@ NetLibStrToIp6andPrefix ( while (*PrefixStr != '\0') { if (NET_IS_DIGIT (*PrefixStr)) { Length = (UINT8) (Length * 10 + (*PrefixStr - '0')); - if (Length >= IP6_PREFIX_NUM) { + if (Length > IP6_PREFIX_MAX) { goto Exit; } } else { diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c index 17e0247832..d0fa132621 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c @@ -416,7 +416,7 @@ Ip4Config2BuildDefaultRouteTable ( // Count = 0; - for (Index = IP4_MASK_NUM - 1; Index >= 0; Index--) { + for (Index = IP4_MASK_MAX; Index >= 0; Index--) { NET_LIST_FOR_EACH (Entry, &(IpSb->DefaultRouteTable->RouteArea[Index])) { RtEntry = NET_LIST_USER_STRUCT (Entry, IP4_ROUTE_ENTRY, Link); diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c index 669e041c10..e457276796 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c @@ -1,7 +1,7 @@ /** @file Implement IP4 pesudo interface. -Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.
+Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -581,7 +581,7 @@ Ip4SetAddress ( Type = NetGetIpClass (IpAddr); ASSERT (Type <= IP4_ADDR_CLASSC); Len = NetGetMaskLength (SubnetMask); - ASSERT (Len < IP4_MASK_NUM); + ASSERT (Len <= IP4_MASK_MAX); Netmask = gIp4AllMasks[MIN (Len, Type << 3)]; Interface->NetBrdcast = (IpAddr | ~Netmask); diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c index 58adba7c8c..e733816556 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c @@ -838,7 +838,7 @@ Ip4StationAddressValid ( // // Only support the continuous net masks // - if ((Len = NetGetMaskLength (Netmask)) == IP4_MASK_NUM) { + if ((Len = NetGetMaskLength (Netmask)) == (IP4_MASK_MAX + 1)) { return FALSE; } diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Route.c b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Route.c index ea0023ddcb..d240d5343a 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Route.c +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Route.c @@ -1,6 +1,6 @@ /** @file -Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.
+Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -204,7 +204,7 @@ Ip4CreateRouteTable ( RtTable->RefCnt = 1; RtTable->TotalNum = 0; - for (Index = 0; Index < IP4_MASK_NUM; Index++) { + for (Index = 0; Index <= IP4_MASK_MAX; Index++) { InitializeListHead (&(RtTable->RouteArea[Index])); } @@ -241,7 +241,7 @@ Ip4FreeRouteTable ( // // Free all the route table entry and its route cache. // - for (Index = 0; Index < IP4_MASK_NUM; Index++) { + for (Index = 0; Index <= IP4_MASK_MAX; Index++) { NET_LIST_FOR_EACH_SAFE (Entry, Next, &(RtTable->RouteArea[Index])) { RtEntry = NET_LIST_USER_STRUCT (Entry, IP4_ROUTE_ENTRY, Link); @@ -469,7 +469,7 @@ Ip4FindRouteEntry ( RtEntry = NULL; - for (Index = IP4_MASK_NUM - 1; Index >= 0; Index--) { + for (Index = IP4_MASK_MAX; Index >= 0; Index--) { for (Table = RtTable; Table != NULL; Table = Table->Next) { NET_LIST_FOR_EACH (Entry, &Table->RouteArea[Index]) { RtEntry = NET_LIST_USER_STRUCT (Entry, IP4_ROUTE_ENTRY, Link); @@ -641,7 +641,7 @@ Ip4BuildEfiRouteTable ( // Count = 0; - for (Index = IP4_MASK_NUM - 1; Index >= 0; Index--) { + for (Index = IP4_MASK_MAX; Index >= 0; Index--) { for (RtTable = IpInstance->RouteTable; RtTable != NULL; RtTable = RtTable->Next) { NET_LIST_FOR_EACH (Entry, &(RtTable->RouteArea[Index])) { RtEntry = NET_LIST_USER_STRUCT (Entry, IP4_ROUTE_ENTRY, Link); -- 2.39.2