diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index 8d7d5076..ab71a2fd 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,4 +1,4 @@ -From 1bf1469697e4e7c6b3f3fd9918584016829aed8f Mon Sep 17 00:00:00 2001 +From 951620002f57760b9bfb915c0b5d99e72d47dcc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. @@ -110,7 +110,7 @@ index 3dee67d5a91..3623d9d99a1 100644 test_dll_file( "kernel32.dll", TRUE ); test_dll_file( "advapi32.dll", TRUE ); diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 2f110b23452..ee9b3b1c3ca 100644 +index 656db6ee579..05aac8a65f7 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -122,6 +122,9 @@ struct file_id @@ -205,7 +205,7 @@ index 2f110b23452..ee9b3b1c3ca 100644 if (wm->ldr.InInitializationOrderLinks.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderLinks); -@@ -4007,6 +4063,7 @@ static void process_init(void) +@@ -4003,6 +4059,7 @@ static void process_init(void) INITIAL_TEB stack; TEB *teb = NtCurrentTeb(); PEB *peb = teb->Peb; @@ -213,7 +213,7 @@ index 2f110b23452..ee9b3b1c3ca 100644 peb->LdrData = &ldr; peb->FastPebLock = &peb_lock; -@@ -4046,6 +4103,10 @@ static void process_init(void) +@@ -4042,6 +4099,10 @@ static void process_init(void) load_global_options(); version_init(); @@ -224,16 +224,16 @@ index 2f110b23452..ee9b3b1c3ca 100644 /* setup the load callback and create ntdll modref */ RtlInitUnicodeString( &nt_name, ntdllW ); NtQueryVirtualMemory( GetCurrentProcess(), process_init, MemoryBasicInformation, -@@ -4131,6 +4192,9 @@ static void process_init(void) - teb->Tib.StackBase = stack.StackBase; +@@ -4128,6 +4189,9 @@ static void process_init(void) teb->Tib.StackLimit = stack.StackLimit; teb->DeallocationStack = stack.DeallocationStack; -+ + + /* the windows version was not set yet when ntdll and kernel32 were loaded */ + recompute_hash_map(); ++ + unix_funcs->server_init_process_done( kernel32_start_process ); } - /*********************************************************************** diff --git a/include/winternl.h b/include/winternl.h index dceed34340a..dca18cab8ff 100644 --- a/include/winternl.h diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 756082b6..86c60415 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "7489efa03f09c6c3613668a0169abade6b390d09" + echo "5bb27d1edb2b6c8c04991cc88e54f161f0c41625" } # Show version information diff --git a/staging/upstream-commit b/staging/upstream-commit index b3ef3062..0d5efe5f 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -7489efa03f09c6c3613668a0169abade6b390d09 +5bb27d1edb2b6c8c04991cc88e54f161f0c41625