mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-01 07:37:02 +00:00
a7be4256f6
In cases where this could have been use-after-free, exceptions were caught/hidden by RpcTryFinally, but still lead to leaks since NdrProxyFreeBuffer wasn't able to call IRPCChannelBuffer::FreeBuffer. StdProxy_GetChannel() now AddRef() on its return value (used to set __proxy_frame::_StubMsg::pRpcChannelBuffer), and NdrProxyFreeBuffer() calls the corresponding Release() and clears the now-weak pointer. This makes the behavior of these function match the observed test results, and fixes the crash/leak when a proxy is released mid-Invoke. |
||
---|---|---|
.. | ||
tests | ||
cproxy.c | ||
cpsf.c | ||
cpsf.h | ||
cstub.c | ||
epm.idl | ||
epm_towers.h | ||
Makefile.in | ||
ncastatus.h | ||
ndr_clientserver.c | ||
ndr_contexthandle.c | ||
ndr_es.c | ||
ndr_fullpointer.c | ||
ndr_marshall.c | ||
ndr_misc.h | ||
ndr_ole.c | ||
ndr_stubless.c | ||
ndr_stubless.h | ||
ndr_typelib.c | ||
ndr_types.idl | ||
rpc_assoc.c | ||
rpc_assoc.h | ||
rpc_async.c | ||
rpc_binding.c | ||
rpc_binding.h | ||
rpc_defs.h | ||
rpc_epmap.c | ||
rpc_message.c | ||
rpc_message.h | ||
rpc_server.c | ||
rpc_server.h | ||
rpc_transport.c | ||
rpcrt4.spec | ||
rpcrt4_main.c | ||
version.rc |