Rebase against 12c3177ed5cae39de8a9f9111a1cb450296cc8e6.

This commit is contained in:
Zebediah Figura
2020-04-01 18:08:55 -05:00
parent 001ea51fb5
commit 755d1ca559
12 changed files with 172 additions and 235 deletions

View File

@@ -1,4 +1,4 @@
From 657b5b508badf3e4dc711ab97670b62f6d1f811d Mon Sep 17 00:00:00 2001
From f78b1b06730406eb802afa87e602a3cf4211a170 Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Thu, 19 Mar 2020 15:37:50 -0600
Subject: [PATCH] ntdll: Implement RtlIpv6StringToAddress(Ex)[AW]
@@ -10,7 +10,7 @@ Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
2 files changed, 211 insertions(+), 14 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 0ea72e3aef..8b9fb18eb1 100644
index 13b0317744a..66271f67884 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -781,10 +781,10 @@
@@ -28,10 +28,10 @@ index 0ea72e3aef..8b9fb18eb1 100644
@ stdcall RtlIsCriticalSectionLocked(ptr)
@ stdcall RtlIsCriticalSectionLockedByThread(ptr)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 15ff037fef..11e76ed295 100644
index 64853369a36..6f19216e85b 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -98,6 +98,16 @@ static const DWORD CRC_table[256] =
@@ -97,6 +97,16 @@ static const DWORD CRC_table[256] =
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
};
@@ -48,7 +48,7 @@ index 15ff037fef..11e76ed295 100644
/*
* resource functions
*/
@@ -886,15 +896,6 @@ void WINAPI RtlCopyLuidAndAttributesArray(
@@ -885,15 +895,6 @@ void WINAPI RtlCopyLuidAndAttributesArray(
static BOOL parse_ipv4_component(const WCHAR **str, BOOL strict, ULONG *value)
{
@@ -64,7 +64,7 @@ index 15ff037fef..11e76ed295 100644
int base = 10, d;
WCHAR c;
ULONG cur_value, prev_value = 0;
@@ -1074,13 +1075,209 @@ NTSTATUS WINAPI RtlIpv4StringToAddressA(const char *str, BOOLEAN strict, const c
@@ -1073,13 +1074,209 @@ NTSTATUS WINAPI RtlIpv4StringToAddressA(const char *str, BOOLEAN strict, const c
return ret;
}
@@ -72,7 +72,7 @@ index 15ff037fef..11e76ed295 100644
+{
+ WCHAR *terminator;
+ if (**str >= ARRAY_SIZE(hex_table) || hex_table[**str] == -1) return FALSE;
+ *value = min(strtoulW(*str, &terminator, base), 0x7FFFFFFF);
+ *value = min(wcstoul(*str, &terminator, base), 0x7FFFFFFF);
+ if (terminator == *str) return FALSE;
+ *str = terminator;
+ return TRUE;