Module: wine Branch: master Commit: 5be085dec5ef3ef427758cce3a7c2eac01a9cd1a URL: http://source.winehq.org/git/wine.git/?a=commit;h=5be085dec5ef3ef427758cce3a...
Author: Rob Shearman rob@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;