Rob Shearman : rpcrt4: Set pStubMsg-> BufferMark in NdrConformantVaryingArrayUnmarshall and NdrVaryingArrayUnmarshall .

Alexandre Julliard julliard at winehq.org
Mon Dec 24 14:21:31 CST 2007


Module: wine
Branch: master
Commit: 64d1e2d8e3c5f570be41f7fd568915111dd784f9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=64d1e2d8e3c5f570be41f7fd568915111dd784f9

Author: Rob Shearman <rob at codeweavers.com>
Date:   Sat Dec 22 01:39:56 2007 +0000

rpcrt4: Set pStubMsg->BufferMark in NdrConformantVaryingArrayUnmarshall and NdrVaryingArrayUnmarshall.

pStubMsg->BufferMark should always be set before
EmbeddedPointerUnmarshall is called and these functions didn't
previously do so.

---

 dlls/rpcrt4/ndr_marshall.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c
index c5cebea..2db0212 100644
--- a/dlls/rpcrt4/ndr_marshall.c
+++ b/dlls/rpcrt4/ndr_marshall.c
@@ -2885,6 +2885,7 @@ unsigned char* WINAPI NdrConformantVaryingArrayUnmarshall( PMIDL_STUB_MESSAGE pS
 
     if (!*ppMemory || fMustAlloc)
         *ppMemory = NdrAllocate(pStubMsg, memsize);
+    pStubMsg->BufferMark = pStubMsg->Buffer;
     safe_copy_from_buffer(pStubMsg, *ppMemory + pStubMsg->Offset, bufsize);
 
     EmbeddedPointerUnmarshall(pStubMsg, *ppMemory, *ppMemory, pFormat, TRUE /* FIXME */);
@@ -4515,6 +4516,7 @@ unsigned char *  WINAPI NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,
 
     if (!*ppMemory || fMustAlloc)
         *ppMemory = NdrAllocate(pStubMsg, size);
+    pStubMsg->BufferMark = pStubMsg->Buffer;
     safe_copy_from_buffer(pStubMsg, *ppMemory + pStubMsg->Offset, bufsize);
 
     EmbeddedPointerUnmarshall(pStubMsg, *ppMemory, *ppMemory, pFormat, TRUE /* FIXME */);




More information about the wine-cvs mailing list