Module: wine Branch: master Commit: 4ece7d409a64e0a21159c5fd550ce1e8f40fefa8 URL: https://source.winehq.org/git/wine.git/?a=commit;h=4ece7d409a64e0a21159c5fd5...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Mar 11 21:51:57 2021 +0100
server: Don't return image information for a terminated process.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/tests/process.c | 2 -- server/process.c | 8 ++++++-- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index 3e450c09849..373212cd2da 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -4207,9 +4207,7 @@ static void test_dead_process(void)
memset( &image, 0xcc, sizeof(image) ); status = NtQueryInformationProcess( pi.hProcess, ProcessImageInformation, &image, sizeof(image), NULL); - todo_wine ok( status == STATUS_PROCESS_IS_TERMINATING, "ProcessImageInformation wrong error %x\n", status ); - todo_wine ok( image.Machine == 0xcccc, "ProcessImageInformation info modified\n" );
while ((status = NtQuerySystemInformation(SystemProcessInformation, buffer, size, &size)) == STATUS_INFO_LENGTH_MISMATCH) diff --git a/server/process.c b/server/process.c index 90ea44515ec..f65d7abe2af 100644 --- a/server/process.c +++ b/server/process.c @@ -1361,8 +1361,12 @@ DECL_HANDLER(get_process_info) client_ptr_t base; const pe_image_info_t *info; struct memory_view *view = get_exe_view( process ); - if (view && (info = get_view_image_info( view, &base ))) - set_reply_data( info, min( sizeof(*info), get_reply_max_size() )); + if (view) + { + if ((info = get_view_image_info( view, &base ))) + set_reply_data( info, min( sizeof(*info), get_reply_max_size() )); + } + else set_error( STATUS_PROCESS_IS_TERMINATING ); } release_object( process ); }