From 9c63a30c2591a3c75b8d431bc94b208e3c15153b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delanoy?= Date: Wed, 31 Oct 2012 09:43:46 +0100 Subject: [PATCH] rpcrt4: Fix resources leaks. --- dlls/rpcrt4/rpc_transport.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dlls/rpcrt4/rpc_transport.c b/dlls/rpcrt4/rpc_transport.c index 686ce687c4a..aebb05e1f4e 100644 --- a/dlls/rpcrt4/rpc_transport.c +++ b/dlls/rpcrt4/rpc_transport.c @@ -1345,6 +1345,7 @@ static RPC_STATUS rpcrt4_protseq_ncacn_ip_tcp_open_endpoint(RpcServerProtseq *pr if (getsockname(sock, (struct sockaddr *)&sa, &sa_len)) { WARN("getsockname() failed: %s\n", strerror(errno)); + closesocket(sock); status = RPC_S_CANT_CREATE_ENDPOINT; continue; } @@ -1355,6 +1356,7 @@ static RPC_STATUS rpcrt4_protseq_ncacn_ip_tcp_open_endpoint(RpcServerProtseq *pr if (ret) { WARN("getnameinfo failed: %s\n", gai_strerror(ret)); + closesocket(sock); status = RPC_S_CANT_CREATE_ENDPOINT; continue; } @@ -2139,6 +2141,8 @@ static RPC_STATUS rpcrt4_http_internet_connect(RpcConnection_http *httpc) { HeapFree(GetProcessHeap(), 0, password); HeapFree(GetProcessHeap(), 0, user); + HeapFree(GetProcessHeap(), 0, proxy); + HeapFree(GetProcessHeap(), 0, servername); ERR("InternetOpenW failed with error %d\n", GetLastError()); return RPC_S_SERVER_UNAVAILABLE; } @@ -2153,6 +2157,7 @@ static RPC_STATUS rpcrt4_http_internet_connect(RpcConnection_http *httpc) { HeapFree(GetProcessHeap(), 0, password); HeapFree(GetProcessHeap(), 0, user); + HeapFree(GetProcessHeap(), 0, proxy); return RPC_S_OUT_OF_RESOURCES; } MultiByteToWideChar(CP_ACP, 0, httpc->common.NetworkAddr, -1, servername, strlen(httpc->common.NetworkAddr) + 1); @@ -2163,6 +2168,7 @@ static RPC_STATUS rpcrt4_http_internet_connect(RpcConnection_http *httpc) HeapFree(GetProcessHeap(), 0, password); HeapFree(GetProcessHeap(), 0, user); + HeapFree(GetProcessHeap(), 0, proxy); HeapFree(GetProcessHeap(), 0, servername); if (!httpc->session)