• Kevin Puetz's avatar
    rpcrt4/tests: Add tests for lifetime of IRpcChannelBuffer. · 59f39b32
    Kevin Puetz authored
    It's possible for a proxy to be released during the middle of an Invoke.
    E.g. a specific case where this happened was a single-shot event sink
    which, upon receiving the event it was waiting for, would immediately
    call DispEventUnadvise. This removed the proxy pointing to that sink
    from the connection point's list of subscribers and released the last
    refcount on the proxy itself.
    
    Therefore, all state used to complete an RPC call must be on the stack;
    once NdrProxySendReceive pumps STA messages and permits reentrancy,
    the proxy cannot be accessed or relied on to own anything.
    
    Add test showing MIDL_STUB_MESSAGE::pRpcChannelBuffer owns a refcount
    (to ensure it can read [out] parameters from the channel)
    59f39b32
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...