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