ReactOS regression inrpcrt4
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? Regards, Fabian Maurer
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
participants (2)
-
Fabian Maurer -
Zebediah Figura