diff --git a/changes/bug23690 b/changes/bug23690 new file mode 100644 index 000000000..36ff32e49 --- /dev/null +++ b/changes/bug23690 @@ -0,0 +1,5 @@ + o Major bugfixes (relay, crash, assertion failure): + - Fix a timing-based assertion failure that could occur when the + circuit out-of-memory handler freed a connection's output buffer. + Fixes bug 23690; bugfix on 0.2.6.1-alpha. + diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 86b0aa097..6ffaabc16 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -2028,6 +2028,7 @@ single_conn_free_bytes(connection_t *conn) if (conn->outbuf) { result += buf_allocation(conn->outbuf); buf_clear(conn->outbuf); + conn->outbuf_flushlen = 0; } if (conn->type == CONN_TYPE_DIR) { dir_connection_t *dir_conn = TO_DIR_CONN(conn);