Still WIP but at least this seems to be correct. ChangeLog: "fix" stub for NdrClientCall2 to crash instead of displaying garbage License: X11 -- gmt "It has been well said that really up-to-date liberals do not care what people do, as long as it is compulsory." -George F. Will
--- dlls/rpcrt4/ndr_stubless.c.D_PL1 2002-10-13 15:56:13.000000000 -0500 +++ dlls/rpcrt4/ndr_stubless.c 2002-10-13 22:01:20.000000000 -0500 @@ -42,18 +42,19 @@ LONG_PTR RPCRT4_NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, va_list args) { - FIXME("(pStubDec == ^%p,pFormat = \"%s\",...): stub\n", pStubDesc, pFormat); + RPC_CLIENT_INTERFACE *rpc_cli_if = (RPC_CLIENT_INTERFACE *)(pStubDesc->RpcInterfaceInformation); - PRPC_CLIENT_INTERFACE rpc_cli_if = (PRPC_CLIENT_INTERFACE) pStubDesc; - - TRACE("rpc_cli_if: Length == %d; InterfaceID == <%s,<%d.%d>>; TransferSyntax == <%s,<%d.%d>>; DispatchTable == ^%p; RpcProtseqEndpointCount == %d; RpcProtseqEndpoint == ^%p; Flags == %d\n", - rpc_cli_if->Length, - debugstr_guid(&rpc_cli_if->InterfaceId.SyntaxGUID), rpc_cli_if->InterfaceId.SyntaxVersion.MajorVersion, rpc_cli_if->InterfaceId.SyntaxVersion.MinorVersion, - debugstr_guid(&rpc_cli_if->TransferSyntax.SyntaxGUID), rpc_cli_if->TransferSyntax.SyntaxVersion.MajorVersion, rpc_cli_if->TransferSyntax.SyntaxVersion.MinorVersion, - rpc_cli_if->DispatchTable, - rpc_cli_if->RpcProtseqEndpointCount, - rpc_cli_if->RpcProtseqEndpoint, - rpc_cli_if->Flags); + FIXME("(pStubDec == ^%p,pFormat = \"%s\",...): stub\n", pStubDesc, pFormat); + TRACE("rpc_cli_if == ^%p\n", rpc_cli_if); + if (rpc_cli_if) /* for objects this is NULL */ + TRACE("rpc_cli_if: Length == %d; InterfaceID == <%s,<%d.%d>>; TransferSyntax == <%s,<%d.%d>>; DispatchTable == ^%p; RpcProtseqEndpointCount == %d; RpcProtseqEndpoint == ^%p; Flags == %d\n", + rpc_cli_if->Length, + debugstr_guid(&rpc_cli_if->InterfaceId.SyntaxGUID), rpc_cli_if->InterfaceId.SyntaxVersion.MajorVersion, rpc_cli_if->InterfaceId.SyntaxVersion.MinorVersion, + debugstr_guid(&rpc_cli_if->TransferSyntax.SyntaxGUID), rpc_cli_if->TransferSyntax.SyntaxVersion.MajorVersion, rpc_cli_if->TransferSyntax.SyntaxVersion.MinorVersion, + rpc_cli_if->DispatchTable, + rpc_cli_if->RpcProtseqEndpointCount, + rpc_cli_if->RpcProtseqEndpoint, + rpc_cli_if->Flags); return 0; }