[tor-commits] [tor/master] Consider the case that a connection doesn't have a valid socket during OOS

nickm at torproject.org nickm at torproject.org
Thu Aug 25 18:32:16 UTC 2016


commit 3efe92ba58137022dd6c61cff9823813218a1a14
Author: Andrea Shepard <andrea at torproject.org>
Date:   Sat Aug 20 03:57:32 2016 +0000

    Consider the case that a connection doesn't have a valid socket during OOS
---
 src/or/connection.c | 5 +++++
 src/or/main.c       | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/or/connection.c b/src/or/connection.c
index 713a70c..6b85bfb 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 6ab94f5..a1b5954 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;





More information about the tor-commits mailing list