summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Library/DxeNetLib/DxeNetLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Library/DxeNetLib/DxeNetLib.c')
-rw-r--r--MdeModulePkg/Library/DxeNetLib/DxeNetLib.c10
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++;
}