Sebastian Lackner : server: Unconditionally close APC handle in get_apc_result call.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Oct 29 09:32:11 CDT 2015


Module: wine
Branch: master
Commit: 23cdc7e529c616e6a26adbd8875e36ad992ea683
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=23cdc7e529c616e6a26adbd8875e36ad992ea683

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Thu Oct 29 02:34:02 2015 +0100

server: Unconditionally close APC handle in get_apc_result call.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/server.c |  1 -
 server/thread.c     | 13 ++++++-------
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index f6457db..356d631 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -677,7 +677,6 @@ unsigned int server_queue_process_apc( HANDLE process, const apc_call_t *call, a
             SERVER_END_REQ;
 
             if (!ret && result->type == APC_NONE) continue;  /* APC didn't run, try again */
-            if (ret) NtClose( handle );
         }
         return ret;
     }
diff --git a/server/thread.c b/server/thread.c
index 6383000..d65ea89 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -1602,13 +1602,12 @@ DECL_HANDLER(get_apc_result)
 
     if (!(apc = (struct thread_apc *)get_handle_obj( current->process, req->handle,
                                                      0, &thread_apc_ops ))) return;
-    if (!apc->executed) set_error( STATUS_PENDING );
-    else
-    {
-        reply->result = apc->result;
-        /* close the handle directly to avoid an extra round-trip */
-        close_handle( current->process, req->handle );
-    }
+
+    if (apc->executed) reply->result = apc->result;
+    else set_error( STATUS_PENDING );
+
+    /* close the handle directly to avoid an extra round-trip */
+    close_handle( current->process, req->handle );
     release_object( apc );
 }
 




More information about the wine-cvs mailing list