Commit 2f7538ec by Philip Kelley

Fix connection leak in http subtransport

parent 091361f5
...@@ -193,16 +193,19 @@ void gitno_consume_n(gitno_buffer *buf, size_t cons) ...@@ -193,16 +193,19 @@ void gitno_consume_n(gitno_buffer *buf, size_t cons)
static int gitno_ssl_teardown(gitno_ssl *ssl) static int gitno_ssl_teardown(gitno_ssl *ssl)
{ {
int ret; int ret;
do { do {
ret = SSL_shutdown(ssl->ssl); ret = SSL_shutdown(ssl->ssl);
} while (ret == 0); } while (ret == 0);
if (ret < 0) if (ret < 0)
return ssl_set_error(ssl, ret); ret = ssl_set_error(ssl, ret);
else
ret = 0;
SSL_free(ssl->ssl); SSL_free(ssl->ssl);
SSL_CTX_free(ssl->ctx); SSL_CTX_free(ssl->ctx);
return 0; return ret;
} }
/* Match host names according to RFC 2818 rules */ /* Match host names according to RFC 2818 rules */
......
...@@ -606,6 +606,9 @@ static void http_free(git_smart_subtransport *smart_transport) ...@@ -606,6 +606,9 @@ static void http_free(git_smart_subtransport *smart_transport)
clear_parser_state(t); clear_parser_state(t);
if (t->socket.socket)
gitno_close(&t->socket);
if (t->cred) { if (t->cred) {
t->cred->free(t->cred); t->cred->free(t->cred);
t->cred = NULL; t->cred = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment