summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-12-22 09:45:26 -0500
committerNick Mathewson <nickm@torproject.org>2011-12-22 09:45:26 -0500
commit878a684386cd4f7570bbc221fdfccdf005611c34 (patch)
tree96510e4afb077e1f19b41736c3c836182a83c308
parent8cdeaedf86fe802f5a6f590da61e8100683fed57 (diff)
parente5e50d86ca4d4cf7ec3f78dbaa989fb4b6063f25 (diff)
downloadtor-878a684386cd4f7570bbc221fdfccdf005611c34.tar.gz
tor-878a684386cd4f7570bbc221fdfccdf005611c34.zip
Merge remote-tracking branch 'public/bug4697'
-rw-r--r--changes/bug46975
-rw-r--r--src/or/connection.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/changes/bug4697 b/changes/bug4697
new file mode 100644
index 0000000000..c3c940d874
--- /dev/null
+++ b/changes/bug4697
@@ -0,0 +1,5 @@
+ o Minor bugfixes:
+ - Fix an assertion failure when, while running with bufferevents, a
+ connection finishes connecting after it is marked for close, but
+ before it is closed. Fix for bug 4697; Bugfix on 0.2.3.1-alpha.
+
diff --git a/src/or/connection.c b/src/or/connection.c
index 4cdfb7a6a5..a6d5d8f1e4 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -2953,6 +2953,9 @@ connection_handle_event_cb(struct bufferevent *bufev, short event, void *arg)
{
connection_t *conn = arg;
(void) bufev;
+ if (conn->marked_for_close)
+ return;
+
if (event & BEV_EVENT_CONNECTED) {
tor_assert(connection_state_is_connecting(conn));
if (connection_finished_connecting(conn)<0)