[PATCH 2/2] server: Set error to STATUS_UNSUCCESSFUL when the server fails to queue APC for a thread.

Dmitry Timoshkov dmitry at baikal.ru
Wed Mar 3 03:27:47 CST 2021


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 <dmitry at baikal.ru>
---
 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)
-- 
2.30.1




More information about the wine-devel mailing list