diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index 0cfe8934332..bad6eabf403 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -1037,14 +1037,16 @@ NTSTATUS NTDLL_wait_for_multiple_objects( UINT count, const HANDLE *handles, UIN const LARGE_INTEGER *timeout, HANDLE signal_object ) { NTSTATUS ret; - int cookie; + int i, cookie; BOOL user_apc = FALSE; + obj_handle_t obj_handles[MAXIMUM_WAIT_OBJECTS]; obj_handle_t apc_handle = 0; apc_call_t call; apc_result_t result; timeout_t abs_timeout = timeout ? timeout->QuadPart : TIMEOUT_INFINITE; memset( &result, 0, sizeof(result) ); + for (i = 0; i < count; i++) obj_handles[i] = wine_server_obj_handle( handles[i] ); for (;;) { @@ -1056,7 +1058,7 @@ NTSTATUS NTDLL_wait_for_multiple_objects( UINT count, const HANDLE *handles, UIN req->prev_apc = apc_handle; req->timeout = abs_timeout; wine_server_add_data( req, &result, sizeof(result) ); - wine_server_add_data( req, handles, count * sizeof(HANDLE) ); + wine_server_add_data( req, obj_handles, count * sizeof(*obj_handles) ); ret = wine_server_call( req ); abs_timeout = reply->timeout; apc_handle = reply->apc_handle;