Module: wine Branch: master Commit: 0c2f5f8b15a4f7bb7008c3efb12b4cd3c774a3a1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0c2f5f8b15a4f7bb7008c3efb...
Author: Dmitry Timoshkov dmitry@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@baikal.ru Signed-off-by: Alexandre Julliard julliard@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)