From 39678da19654abf5f95ab29dd9fe8d01df2b1408 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 9 Apr 2020 08:15:42 +1000 Subject: [PATCH] Updated ntdll-RtlIpv4StringToAddress patchset --- ...mplement-RtlIpv6StringToAddress-Ex-AW.patch | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/patches/ntdll-RtlIpv4StringToAddress/0001-ntdll-Implement-RtlIpv6StringToAddress-Ex-AW.patch b/patches/ntdll-RtlIpv4StringToAddress/0001-ntdll-Implement-RtlIpv6StringToAddress-Ex-AW.patch index ad08bd39..e8288903 100644 --- a/patches/ntdll-RtlIpv4StringToAddress/0001-ntdll-Implement-RtlIpv6StringToAddress-Ex-AW.patch +++ b/patches/ntdll-RtlIpv4StringToAddress/0001-ntdll-Implement-RtlIpv6StringToAddress-Ex-AW.patch @@ -1,16 +1,16 @@ -From f78b1b06730406eb802afa87e602a3cf4211a170 Mon Sep 17 00:00:00 2001 +From f2ecf7649cac98316c6e7345c78c66b7afce4b27 Mon Sep 17 00:00:00 2001 From: Alex Henrie -Date: Thu, 19 Mar 2020 15:37:50 -0600 +Date: Tue, 7 Apr 2020 21:22:52 -0600 Subject: [PATCH] ntdll: Implement RtlIpv6StringToAddress(Ex)[AW] Signed-off-by: Alex Henrie --- dlls/ntdll/ntdll.spec | 6 +- - dlls/ntdll/rtl.c | 219 +++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 211 insertions(+), 14 deletions(-) + dlls/ntdll/rtl.c | 221 +++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 213 insertions(+), 14 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 13b0317744a..66271f67884 100644 +index e61a2578da..b887e82b47 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -781,10 +781,10 @@ @@ -28,7 +28,7 @@ index 13b0317744a..66271f67884 100644 @ stdcall RtlIsCriticalSectionLocked(ptr) @ stdcall RtlIsCriticalSectionLockedByThread(ptr) diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c -index 64853369a36..6f19216e85b 100644 +index 64853369a3..a4e220bcf2 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -97,6 +97,16 @@ static const DWORD CRC_table[256] = @@ -64,7 +64,7 @@ index 64853369a36..6f19216e85b 100644 int base = 10, d; WCHAR c; ULONG cur_value, prev_value = 0; -@@ -1073,13 +1074,209 @@ NTSTATUS WINAPI RtlIpv4StringToAddressA(const char *str, BOOLEAN strict, const c +@@ -1073,13 +1074,211 @@ NTSTATUS WINAPI RtlIpv4StringToAddressA(const char *str, BOOLEAN strict, const c return ret; } @@ -73,7 +73,8 @@ index 64853369a36..6f19216e85b 100644 + WCHAR *terminator; + if (**str >= ARRAY_SIZE(hex_table) || hex_table[**str] == -1) return FALSE; + *value = min(wcstoul(*str, &terminator, base), 0x7FFFFFFF); -+ if (terminator == *str) return FALSE; ++ if (*terminator == '0') terminator++; /* "0x" but nothing valid after */ ++ else if (terminator == *str) return FALSE; + *str = terminator; + return TRUE; +} @@ -228,6 +229,7 @@ index 64853369a36..6f19216e85b 100644 - FIXME("(%s, %p, %p, %p): stub\n", debugstr_w(str), address, scope, port); - return STATUS_NOT_IMPLEMENTED; + TRACE("(%s, %p, %p, %p)\n", debugstr_w(str), address, scope, port); ++ if (!str || !address || !scope || !port) return STATUS_INVALID_PARAMETER; + return ipv6_string_to_address(str, TRUE, NULL, address, scope, port); +} +