diff --git a/changes/bug27795 b/changes/bug27795 new file mode 100644 index 0000000000..43bb1ba16a --- /dev/null +++ b/changes/bug27795 @@ -0,0 +1,5 @@ + o Major bugfixes (socket accounting): + - In our socket accounting code, count a socket as closed even + when it is closed indirectly by the TLS layer. Previously, we + would count these sockets as still in use, and incorrectly believe that + we had run out of sockets. Fixes bug 27795; bugfix on 0.3.5.1-alpha. diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c index 0c3abc8442..b0cb5322c3 100644 --- a/src/core/mainloop/connection.c +++ b/src/core/mainloop/connection.c @@ -646,6 +646,7 @@ connection_free_minimal(connection_t *conn) } else { /* The tor_tls_free() call below will close the socket; we must tell * the code below not to close it a second time. */ + tor_release_socket_ownership(conn->s); conn->s = TOR_INVALID_SOCKET; } tor_tls_free(or_conn->tls);