From 5b629e950949357bcc99fd84a7c2d593de36902c Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Fri, 20 Jan 2006 16:15:11 +0100 Subject: [PATCH] rpc: Skip over the right number of bytes in new correlation descriptors. Skip over 6 bytes of the format descriptor if new correlation descriptors are being used, instead of 4. --- dlls/rpcrt4/ndr_marshall.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c index 6a681a7270c..3045b42f681 100644 --- a/dlls/rpcrt4/ndr_marshall.c +++ b/dlls/rpcrt4/ndr_marshall.c @@ -310,7 +310,10 @@ PFORMAT_STRING ReadConformance(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pForm pStubMsg->MaxCount = NDR_LOCAL_UINT32_READ(pStubMsg->Buffer); pStubMsg->Buffer += 4; TRACE("unmarshalled conformance is %ld\n", pStubMsg->MaxCount); - return pFormat+4; + if (pStubMsg->fHasNewCorrDesc) + return pFormat+6; + else + return pFormat+4; } static inline PFORMAT_STRING ReadVariance(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat) @@ -330,7 +333,10 @@ static inline PFORMAT_STRING ReadVariance(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_S TRACE("variance is %ld\n", pStubMsg->ActualCount); done: - return pFormat+4; + if (pStubMsg->fHasNewCorrDesc) + return pFormat+6; + else + return pFormat+4; } PFORMAT_STRING ComputeConformanceOrVariance( @@ -444,7 +450,10 @@ done_conf_grab: finish_conf: TRACE("resulting conformance is %ld\n", *pCount); - return pFormat+4; + if (pStubMsg->fHasNewCorrDesc) + return pFormat+6; + else + return pFormat+4; }