From e5e50d86ca4d4cf7ec3f78dbaa989fb4b6063f25 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sat, 17 Dec 2011 14:06:10 -0500 Subject: Ignore all bufferevent events on a marked connection Bug 4697; fix on 0.2.3.1-alpha --- changes/bug4697 | 5 +++++ src/or/connection.c | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 changes/bug4697 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 28d8bca12a..9283c98589 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -2960,6 +2960,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) -- cgit v1.2.3-54-g00ecf