From: Trent Waddington <trent.waddington@tensorworks.com.au> --- dlls/kernelbase/loader.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/kernelbase/loader.c b/dlls/kernelbase/loader.c index f4e1ca2e23a..e26a08ccca5 100644 --- a/dlls/kernelbase/loader.c +++ b/dlls/kernelbase/loader.c @@ -302,13 +302,12 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetModuleFileNameW( HMODULE module, LPWSTR filena ULONG len = 0; WIN16_SUBSYSTEM_TIB *win16_tib; UNICODE_STRING name; - NTSTATUS status; + NTSTATUS status = 0; if (!module && ((win16_tib = NtCurrentTeb()->Tib.SubSystemTib)) && win16_tib->exe_name) { len = min( size, win16_tib->exe_name->Length / sizeof(WCHAR) ); memcpy( filename, win16_tib->exe_name->Buffer, len * sizeof(WCHAR) ); - if (len < size) filename[len] = 0; goto done; } @@ -319,6 +318,13 @@ DWORD WINAPI DECLSPEC_HOTPATCH GetModuleFileNameW( HMODULE module, LPWSTR filena SetLastError( RtlNtStatusToDosError( status )); done: TRACE( "%s\n", debugstr_wn(filename, len) ); + if (!status || status == STATUS_BUFFER_TOO_SMALL) + { + if (len < size) + filename[len] = 0; + else if (size > 0) + filename[size - 1] = 0; + } return len; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10291