[or-cvs] r14109: Likely fix for bug 632: do not call start_reading on a place (in tor/trunk: . src/or)

nickm at seul.org nickm at seul.org
Tue Mar 18 19:00:13 UTC 2008


Author: nickm
Date: 2008-03-18 15:00:12 -0400 (Tue, 18 Mar 2008)
New Revision: 14109

Modified:
   tor/trunk/
   tor/trunk/ChangeLog
   tor/trunk/src/or/relay.c
Log:
 r18941 at catbus:  nickm | 2008-03-18 14:59:43 -0400
 Likely fix for bug 632: do not call start_reading on a placeholder connection.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r18941] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-03-18 18:51:42 UTC (rev 14108)
+++ tor/trunk/ChangeLog	2008-03-18 19:00:12 UTC (rev 14109)
@@ -1,4 +1,9 @@
 Changes in version 0.2.1.1-alpha - 2008-??-??
+  o Major bugfixes:
+    - Fix assertion failure that could occur when a blocked circuit became
+      unblocked, and it had pending client DNS requests.  Bugfix on
+      0.2.0.1-alpha.  Fixes bug 632.
+
   o Minor bugfixes:
     - Stop giving double-close warn when we reject an address for client DNS.
     - On Windows, correctly detect errors when listing the contents of a

Modified: tor/trunk/src/or/relay.c
===================================================================
--- tor/trunk/src/or/relay.c	2008-03-18 18:51:42 UTC (rev 14108)
+++ tor/trunk/src/or/relay.c	2008-03-18 19:00:12 UTC (rev 14109)
@@ -1813,6 +1813,12 @@
     connection_t *conn = TO_CONN(edge);
     conn->edge_blocked_on_circ = block;
 
+    if (!conn->read_event) {
+      /* This connection is a placeholder for something; probably a DNS
+       * request.  It can't actually stop or start reading.*/
+      continue;
+    }
+
     if (block) {
       if (connection_is_reading(conn))
         connection_stop_reading(conn);



More information about the tor-commits mailing list