Dmitry Timoshkov : rpcrt4: Return an exception code from NdrAsyncClientCall.
Alexandre Julliard
julliard at winehq.org
Mon Sep 2 14:50:20 CDT 2019
Module: wine
Branch: master
Commit: 0c2f5f8b15a4f7bb7008c3efb12b4cd3c774a3a1
URL: https://source.winehq.org/git/wine.git/?a=commit;h=0c2f5f8b15a4f7bb7008c3efb12b4cd3c774a3a1
Author: Dmitry Timoshkov <dmitry at 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 at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at 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)
More information about the wine-cvs
mailing list