From 6339c43c802012f49f0c4c4a77df3670fb9ed74b Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 25 Oct 2018 13:19:22 +0200 Subject: [PATCH] Fixed sockfd/socketBio resource leak. --- libfreerdp/core/gateway/rdg.c | 10 +++++----- libfreerdp/core/gateway/rpc.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libfreerdp/core/gateway/rdg.c b/libfreerdp/core/gateway/rdg.c index b1bab4824..ca678cebc 100644 --- a/libfreerdp/core/gateway/rdg.c +++ b/libfreerdp/core/gateway/rdg.c @@ -328,7 +328,7 @@ static wStream* rdg_build_http_request(rdpRdg* rdg, const char* method, HttpRequest* request = NULL; const char* uri; - if (!rdg || !method ) + if (!rdg || !method) return NULL; uri = http_context_get_uri(rdg->http); @@ -693,9 +693,7 @@ static BOOL rdg_tls_connect(rdpRdg* rdg, rdpTls* tls, const char* peerAddress, i peerPort, timeout); if (sockfd < 0) - { return FALSE; - } socketBio = BIO_new(BIO_s_simple_socket()); @@ -710,8 +708,7 @@ static BOOL rdg_tls_connect(rdpRdg* rdg, rdpTls* tls, const char* peerAddress, i if (!bufferedBio) { - closesocket(sockfd); - BIO_free(socketBio); + BIO_free_all(socketBio); return FALSE; } @@ -722,7 +719,10 @@ static BOOL rdg_tls_connect(rdpRdg* rdg, rdpTls* tls, const char* peerAddress, i { if (!proxy_connect(settings, bufferedBio, proxyUsername, proxyPassword, settings->GatewayHostname, settings->GatewayPort)) + { + BIO_free_all(bufferedBio); return FALSE; + } } if (!status) diff --git a/libfreerdp/core/gateway/rpc.c b/libfreerdp/core/gateway/rpc.c index 08813b20c..54f35a4bc 100644 --- a/libfreerdp/core/gateway/rpc.c +++ b/libfreerdp/core/gateway/rpc.c @@ -672,7 +672,7 @@ static BOOL rpc_channel_tls_connect(RpcChannel* channel, int timeout) if (!socketBio) { - close(sockfd); + closesocket(sockfd); return FALSE; }