Robert Shearman : rpcrt4: Correctly fill in StackTop for stubless clients/ servers.
Module: wine Branch: refs/heads/master Commit: f4de78babebd9694e90d0c1ab400e68daed48eff URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f4de78babebd9694e90d0c1a... Author: Robert Shearman <rob(a)codeweavers.com> Date: Thu Apr 20 11:41:45 2006 +0100 rpcrt4: Correctly fill in StackTop for stubless clients/servers. Correctly fill in StackTop for stubless clients/servers so that conformance for top-level parameters works. --- dlls/rpcrt4/ndr_stubless.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/rpcrt4/ndr_stubless.c b/dlls/rpcrt4/ndr_stubless.c index 2563f2c..a7f0b93 100644 --- a/dlls/rpcrt4/ndr_stubless.c +++ b/dlls/rpcrt4/ndr_stubless.c @@ -585,6 +585,8 @@ #else #endif stubMsg.BufferLength = 0; + /* needed for conformance of top-level objects */ + stubMsg.StackTop = *(unsigned char **)args; /* store the RPC flags away */ if (pProcHeader->Oi_flags & RPC_FC_PROC_OIF_RPCFLAGS) @@ -1138,7 +1140,6 @@ #endif stubMsg.fHasNewCorrDesc = TRUE; } - /* convert strings, floating point values and endianess into our * preferred format */ if ((pRpcMsg->DataRepresentation & 0x0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION) @@ -1148,8 +1149,8 @@ #endif TRACE("allocating memory for stack of size %x\n", stack_size); - args = HeapAlloc(GetProcessHeap(), 0, stack_size); - ZeroMemory(args, stack_size); + args = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, stack_size); + stubMsg.StackTop = args; /* used by conformance of top-level objects */ /* add the implicit This pointer as the first arg to the function if we * are calling an object method */
participants (1)
-
Alexandre Julliard