diff options
-rw-r--r-- | MdeModulePkg/Library/DxeNetLib/DxeNetLib.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c index 04d8345a6d..0804052fac 100644 --- a/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c +++ b/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c @@ -2724,9 +2724,17 @@ NetLibAsciiStrToIp4 ( TempStr = Ip4Str;
while ((*Ip4Str != '\0') && (*Ip4Str != '.')) {
- if (!NET_IS_DIGIT (*Ip4Str)) {
+ if (Index != 3 && !NET_IS_DIGIT (*Ip4Str)) {
return EFI_INVALID_PARAMETER;
}
+
+ //
+ // Allow the IPv4 with prefix case, e.g. 192.168.10.10/24
+ //
+ if (Index == 3 && !NET_IS_DIGIT (*Ip4Str) && *Ip4Str != '/') {
+ return EFI_INVALID_PARAMETER;
+ }
+
Ip4Str++;
}
|