[tor-commits] [tor/master] Fix a bug in removing DNSPort requests from their circular list

nickm at torproject.org nickm at torproject.org
Thu Apr 21 17:42:52 UTC 2011


commit e98583594d897ac32745061143e565c6f4b45f97
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Apr 21 13:39:00 2011 -0400

    Fix a bug in removing DNSPort requests from their circular list
    
    Under heavy load, this could result in an assertion failure.  Fix for
    bug 2933; bugfix on 0.2.0.10-alpha.
---
 changes/bug2933   |    4 ++++
 src/or/eventdns.c |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/changes/bug2933 b/changes/bug2933
new file mode 100644
index 0000000..7aaf526
--- /dev/null
+++ b/changes/bug2933
@@ -0,0 +1,4 @@
+  o Minor bugfixes
+    - Fix an uncommon assertion failure when running with DNSPort under
+      heavy load.  Fixes bug 2933; bugfix on 2.0.1-alpha.
+
diff --git a/src/or/eventdns.c b/src/or/eventdns.c
index a889e80..2777f90 100644
--- a/src/or/eventdns.c
+++ b/src/or/eventdns.c
@@ -1949,7 +1949,7 @@ server_request_free(struct server_request *req)
 
 	if (req->port) {
 		if (req->port->pending_replies == req) {
-			if (req->next_pending)
+			if (req->next_pending && req->next_pending != req)
 				req->port->pending_replies = req->next_pending;
 			else
 				req->port->pending_replies = NULL;





More information about the tor-commits mailing list