diff options
-rw-r--r-- | src/or/connection.c | 5 | ||||
-rw-r--r-- | src/or/main.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 713a70cca4..6b85bfb550 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -4587,6 +4587,11 @@ pick_oos_victims, (int n)) tor_assert(c->type <= CONN_TYPE_MAX_); ++(conn_counts_by_type[c->type]); + /* Skip anything without a socket we can free */ + if (!(SOCKET_OK(c->s))) { + continue; + } + /* Skip anything we would count as moribund */ if (connection_is_moribund(c)) { continue; diff --git a/src/or/main.c b/src/or/main.c index 6ab94f5e36..a1b5954aaf 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -662,7 +662,7 @@ connection_count_moribund, (void)) * runs next. */ SMARTLIST_FOREACH_BEGIN(closeable_connection_lst, connection_t *, conn) { - if (connection_is_moribund(conn)) ++moribund; + if (SOCKET_OK(conn->s) && connection_is_moribund(conn)) ++moribund; } SMARTLIST_FOREACH_END(conn); return moribund; |