Module: wine Branch: master Commit: fd3735cf4dd55b5c582bd51bb03647e5eaf12847 URL: https://source.winehq.org/git/wine.git/?a=commit;h=fd3735cf4dd55b5c582bd51bb...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Oct 22 10:17:36 2019 +0200
kernel32: Move dll load path initialization to ntdll.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/process.c | 4 ---- dlls/ntdll/env.c | 5 ++++- 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index 55630dc6dd..36ed82bff8 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -1028,7 +1028,6 @@ void * CDECL __wine_kernel_init(void) RTL_USER_PROCESS_PARAMETERS *params = peb->ProcessParameters; HANDLE boot_events[2]; BOOL got_environment = TRUE; - WCHAR *load_path, *dummy;
/* Initialize everything */
@@ -1058,9 +1057,6 @@ void * CDECL __wine_kernel_init(void) TRACE( "starting process name=%s argv[0]=%s\n", debugstr_w(main_exe_name), debugstr_w(__wine_main_wargv[0]) );
- LdrGetDllPath( main_exe_name, 0, &load_path, &dummy ); - RtlInitUnicodeString( &NtCurrentTeb()->Peb->ProcessParameters->DllPath, load_path ); - if (boot_events[0]) { DWORD timeout = 2 * 60 * 1000, count = 1; diff --git a/dlls/ntdll/env.c b/dlls/ntdll/env.c index ac0e2621ed..919fc64e2f 100644 --- a/dlls/ntdll/env.c +++ b/dlls/ntdll/env.c @@ -1140,7 +1140,7 @@ static inline void get_unicode_string( UNICODE_STRING *str, WCHAR **src, UINT le */ void init_user_process_params( SIZE_T data_size ) { - WCHAR *src; + WCHAR *src, *load_path, *dummy; SIZE_T info_size, env_size; NTSTATUS status; startup_info_t *info = NULL; @@ -1160,6 +1160,9 @@ void init_user_process_params( SIZE_T data_size ) get_image_path( __wine_main_argv[0], ¶ms->ImagePathName ); set_library_wargv( __wine_main_argv, ¶ms->ImagePathName ); build_command_line( __wine_main_wargv, ¶ms->CommandLine ); + LdrGetDllPath( params->ImagePathName.Buffer, 0, &load_path, &dummy ); + RtlCreateUnicodeString( ¶ms->DllPath, load_path ); + RtlReleasePath( load_path );
if (isatty(0) || isatty(1) || isatty(2)) params->ConsoleHandle = (HANDLE)2; /* see kernel32/kernel_private.h */