Fix an infinite loop introduced in 0.1.2.7-alpha when we serve

directory information requested inside Tor connections (i.e. via
begin_dir cells). It only triggered when the same connection was
serving other data at the same time. Reported by seeess.

Backport candidate.


svn:r9841
This commit is contained in:
Roger Dingledine 2007-03-16 06:55:09 +00:00
parent 75dc5495e2
commit 4813ff04e8
2 changed files with 8 additions and 2 deletions

View File

@ -5,6 +5,12 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
in the network. Implements proposal 1xx, suggested by Kevin Bauer in the network. Implements proposal 1xx, suggested by Kevin Bauer
and Damon McCoy. and Damon McCoy.
o Major bugfixes:
- Fix an infinite loop introduced in 0.1.2.7-alpha when we serve
directory information requested inside Tor connections (i.e. via
begin_dir cells). It only triggered when the same connection was
serving other data at the same time. Reported by seeess.
o Minor features (build): o Minor features (build):
- Make autoconf search for libevent and openssl consistently. - Make autoconf search for libevent and openssl consistently.
- Update deprecated macros in configure.in - Update deprecated macros in configure.in

View File

@ -2093,8 +2093,8 @@ connection_dirserv_stop_blocking_all_on_or_conn(or_connection_t *or_conn)
{ {
dir_connection_t *dir_conn, *next; dir_connection_t *dir_conn, *next;
while (or_conn->blocked_dir_connections) { dir_conn=or_conn->blocked_dir_connections;
dir_conn = or_conn->blocked_dir_connections; while (dir_conn) {
next = dir_conn->next_blocked_on_same_or_conn; next = dir_conn->next_blocked_on_same_or_conn;
dir_conn->is_blocked_on_or_conn = 0; dir_conn->is_blocked_on_or_conn = 0;