Hello Fabian,
On 8/31/20 11:59 AM, Fabian Maurer wrote:
Hello Zebediah,
starting with commit https://github.com/wine-mirror/wine/commit/9271efc0c746 there's a lot of log spam in ReactOS: "RpcBindingFree returned 0x6a6" So far I couldn't reproduce the error in Wine though.
I'm attaching a proposed patch that fixes the issue. Could you please take a look on whether the attached patch would be suitable for inclusion into Wine, or whether that problem points to another underlying issue?
I don't think the patch is correct as given. I'm not very knowledgeable in binding handles, but as far as I'm aware they are allowed to be NULL. Working from -Os output, for the following IDL:
[ uuid(deadbeef-0000-0000-0000-000000000000), version(1.0), ] interface test { struct apple { int i; };
typedef [handle] struct apple * apple_handle;
void a([unique] apple_handle binding); }
MIDL generates the following (trimmed) output:
void a( /* [unique] */ apple_handle binding) {
RPC_BINDING_HANDLE _Handle = 0; /* ... */
RpcTryFinally { /* ... */
_Handle = apple_handle_bind(binding);;
if(( _Handle == 0 ) ) { RpcRaiseException(RPC_S_INVALID_BINDING); } /* ... */
} RpcFinally { NdrFreeBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg );
if(_Handle) { apple_handle_unbind(binding,_Handle); } } RpcEndFinally }
We're missing a NULL check for "_Handle" (i.e. "hbinding" in our code), but there's no check for "binding".
Is there actually a bug, or just added console output?
Regards, Fabian Maurer