From 5ef4748c7c17ff6d0abad82f86b835a339133708 Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Wed, 11 May 2005 15:56:59 +0000 Subject: [PATCH] Use I_RpcGetBuffer instead of HeapReAlloc for getting the Buffer memory. --- dlls/oleaut32/tmarshal.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c index 4d08b2ef4e0..5f78bd4c957 100644 --- a/dlls/oleaut32/tmarshal.c +++ b/dlls/oleaut32/tmarshal.c @@ -1979,7 +1979,8 @@ TMStubImpl_Invoke( memset(&buf,0,sizeof(buf)); buf.size = xmsg->cbBuffer; - buf.base = xmsg->Buffer; + buf.base = HeapAlloc(GetProcessHeap(), 0, xmsg->cbBuffer); + memcpy(buf.base, xmsg->Buffer, xmsg->cbBuffer); buf.curoff = 0; buf.iid = IID_IUnknown; @@ -2173,9 +2174,9 @@ afterserialize: if (hres != S_OK) return hres; - /* might need to use IRpcChannelBuffer_GetBuffer ? */ xmsg->cbBuffer = buf.curoff; - xmsg->Buffer = buf.base; + I_RpcGetBuffer((RPC_MESSAGE *)xmsg); + memcpy(xmsg->Buffer, buf.base, buf.curoff); HeapFree(GetProcessHeap(),0,args); return S_OK; }