Commit 9ff15252 authored by Rob Shearman's avatar Rob Shearman Committed by Alexandre Julliard

rpcrt4: Set the fBufferValid flag in NdrProxyGetBuffer.

Only call IRpcChannelBuffer_FreeBuffer in NdrProxyFreeBuffer if fBufferValid is set.
parent 974b4d2c
...@@ -364,6 +364,7 @@ void WINAPI NdrProxyGetBuffer(void *This, ...@@ -364,6 +364,7 @@ void WINAPI NdrProxyGetBuffer(void *This,
RpcRaiseException(hr); RpcRaiseException(hr);
return; return;
} }
pStubMsg->fBufferValid = TRUE;
pStubMsg->BufferStart = pStubMsg->RpcMsg->Buffer; pStubMsg->BufferStart = pStubMsg->RpcMsg->Buffer;
pStubMsg->BufferEnd = pStubMsg->BufferStart + pStubMsg->BufferLength; pStubMsg->BufferEnd = pStubMsg->BufferStart + pStubMsg->BufferLength;
pStubMsg->Buffer = pStubMsg->BufferStart; pStubMsg->Buffer = pStubMsg->BufferStart;
...@@ -408,11 +409,14 @@ void WINAPI NdrProxySendReceive(void *This, ...@@ -408,11 +409,14 @@ void WINAPI NdrProxySendReceive(void *This,
void WINAPI NdrProxyFreeBuffer(void *This, void WINAPI NdrProxyFreeBuffer(void *This,
PMIDL_STUB_MESSAGE pStubMsg) PMIDL_STUB_MESSAGE pStubMsg)
{ {
HRESULT hr;
TRACE("(%p,%p)\n", This, pStubMsg); TRACE("(%p,%p)\n", This, pStubMsg);
hr = IRpcChannelBuffer_FreeBuffer(pStubMsg->pRpcChannelBuffer,
if (pStubMsg->fBufferValid)
{
IRpcChannelBuffer_FreeBuffer(pStubMsg->pRpcChannelBuffer,
(RPCOLEMESSAGE*)pStubMsg->RpcMsg); (RPCOLEMESSAGE*)pStubMsg->RpcMsg);
pStubMsg->fBufferValid = TRUE;
}
} }
/*********************************************************************** /***********************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment