Dmitry Timoshkov : rpcrt4: Return an exception code from NdrAsyncClientCall.
Module: wine Branch: master Commit: 0c2f5f8b15a4f7bb7008c3efb12b4cd3c774a3a1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0c2f5f8b15a4f7bb7008c3efb... Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Mon Sep 2 15:45:42 2019 +0800 rpcrt4: Return an exception code from NdrAsyncClientCall. Otherwise the caller may decide to wait for the call termination which will never happen. Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/rpcrt4/ndr_stubless.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/rpcrt4/ndr_stubless.c b/dlls/rpcrt4/ndr_stubless.c index de58a9f..9053751 100644 --- a/dlls/rpcrt4/ndr_stubless.c +++ b/dlls/rpcrt4/ndr_stubless.c @@ -1773,6 +1773,7 @@ static void do_ndr_async_client_call( const MIDL_STUB_DESC *pStubDesc, PFORMAT_S LONG_PTR CDECL DECLSPEC_HIDDEN ndr_async_client_call( PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, void **stack_top ) { + LONG_PTR ret = 0; const NDR_PROC_HEADER *pProcHeader = (const NDR_PROC_HEADER *)&pFormat[0]; TRACE("pStubDesc %p, pFormat %p, ...\n", pStubDesc, pFormat); @@ -1786,14 +1787,15 @@ LONG_PTR CDECL DECLSPEC_HIDDEN ndr_async_client_call( PMIDL_STUB_DESC pStubDesc, __EXCEPT_ALL { FIXME("exception %x during ndr_async_client_call()\n", GetExceptionCode()); + ret = GetExceptionCode(); } __ENDTRY } else do_ndr_async_client_call( pStubDesc, pFormat, stack_top); - TRACE("returning 0\n"); - return 0; + TRACE("returning %ld\n", ret); + return ret; } RPC_STATUS NdrpCompleteAsyncClientCall(RPC_ASYNC_STATE *pAsync, void *Reply)
participants (1)
-
Alexandre Julliard