Rob Shearman : rpcrt4:
Fix a memory leak in I_RpcSendReceive caused by I_RpcReceive
overwriting pMsg- >Buffer.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 21 13:18:29 CST 2007
Module: wine
Branch: master
Commit: ca6fe3fbf249feb4c06fec3b613e21b644fa065e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ca6fe3fbf249feb4c06fec3b613e21b644fa065e
Author: Rob Shearman <rob at codeweavers.com>
Date: Wed Feb 21 17:12:41 2007 +0000
rpcrt4: Fix a memory leak in I_RpcSendReceive caused by I_RpcReceive overwriting pMsg->Buffer.
(Reported by Huw Davies.)
---
dlls/rpcrt4/rpc_message.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/rpcrt4/rpc_message.c b/dlls/rpcrt4/rpc_message.c
index 574316d..8a02463 100644
--- a/dlls/rpcrt4/rpc_message.c
+++ b/dlls/rpcrt4/rpc_message.c
@@ -1030,10 +1030,16 @@ fail:
RPC_STATUS WINAPI I_RpcSendReceive(PRPC_MESSAGE pMsg)
{
RPC_STATUS status;
+ RPC_MESSAGE original_message;
TRACE("(%p)\n", pMsg);
+
+ original_message = *pMsg;
status = I_RpcSend(pMsg);
if (status == RPC_S_OK)
status = I_RpcReceive(pMsg);
+ /* free the buffer replaced by a new buffer in I_RpcReceive */
+ if (status == RPC_S_OK)
+ I_RpcFreeBuffer(&original_message);
return status;
}
More information about the wine-cvs
mailing list