From 050dc49b3850a9cf807d995c2c8e8c3f244b9f11 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 3 Mar 2021 12:27:47 +0300 Subject: [PATCH] server: Set error to STATUS_UNSUCCESSFUL when the server fails to queue APC for a thread. I've left another case of returning STATUS_PROCESS_IS_TERMINATING since that's not covered by the tests. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50704 Signed-off-by: Dmitry Timoshkov Signed-off-by: Alexandre Julliard --- dlls/kernel32/tests/sync.c | 2 -- server/thread.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c index 7d6ac030299..f1c5f01fa84 100644 --- a/dlls/kernel32/tests/sync.c +++ b/dlls/kernel32/tests/sync.c @@ -2737,13 +2737,11 @@ static void test_QueueUserAPC(void) ok(ret == WAIT_OBJECT_0, "got %u\n", ret); ret = pNtQueueApcThread(thread, call_user_apc, (ULONG_PTR)user_apc, 0, 0); -todo_wine ok(ret == STATUS_UNSUCCESSFUL, "got %#x\n", ret); SetLastError(0xdeadbeef); ret = QueueUserAPC(user_apc, thread, 0); ok(!ret, "QueueUserAPC should fail\n"); -todo_wine ok(GetLastError() == ERROR_GEN_FAILURE, "got %u\n", GetLastError()); CloseHandle(thread); diff --git a/server/thread.c b/server/thread.c index d544970f3c1..dc02a1a9de3 100644 --- a/server/thread.c +++ b/server/thread.c @@ -1763,7 +1763,7 @@ DECL_HANDLER(queue_apc) if (thread) { - if (!queue_apc( NULL, thread, apc )) set_error( STATUS_THREAD_IS_TERMINATING ); + if (!queue_apc( NULL, thread, apc )) set_error( STATUS_UNSUCCESSFUL ); release_object( thread ); } else if (process)