Rob Shearman : rpcrt4: Fix a leak of msg in RPCRT4_io_thread on the error paths.
Alexandre Julliard
julliard at winehq.org
Wed Jan 9 07:01:49 CST 2008
Module: wine
Branch: master
Commit: 5be085dec5ef3ef427758cce3a7c2eac01a9cd1a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5be085dec5ef3ef427758cce3a7c2eac01a9cd1a
Author: Rob Shearman <rob at codeweavers.com>
Date: Tue Jan 8 18:14:27 2008 +0000
rpcrt4: Fix a leak of msg in RPCRT4_io_thread on the error paths.
---
dlls/rpcrt4/rpc_server.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/rpcrt4/rpc_server.c b/dlls/rpcrt4/rpc_server.c
index 9266187..bb50018 100644
--- a/dlls/rpcrt4/rpc_server.c
+++ b/dlls/rpcrt4/rpc_server.c
@@ -370,15 +370,18 @@ static DWORD CALLBACK RPCRT4_io_thread(LPVOID the_arg)
}
packet = HeapAlloc(GetProcessHeap(), 0, sizeof(RpcPacket));
- if (!packet)
- break;
+ if (!packet) {
+ HeapFree(GetProcessHeap(), 0, msg);
+ break;
+ }
packet->conn = conn;
packet->hdr = hdr;
packet->msg = msg;
if (!QueueUserWorkItem(RPCRT4_worker_thread, packet, WT_EXECUTELONGFUNCTION)) {
- ERR("couldn't queue work item for worker thread, error was %d\n", GetLastError());
- HeapFree(GetProcessHeap(), 0, packet);
- break;
+ ERR("couldn't queue work item for worker thread, error was %d\n", GetLastError());
+ HeapFree(GetProcessHeap(), 0, msg);
+ HeapFree(GetProcessHeap(), 0, packet);
+ break;
}
msg = NULL;
More information about the wine-cvs
mailing list