r15762@catbus: nickm | 2007-10-14 04:33:10 -0400

Minimal backport for r11882: Fix bug 451 by bailing out of connection_finish_flushing when there is no socket or write_event.


svn:r11927
This commit is contained in:
Nick Mathewson 2007-10-14 08:48:54 +00:00
parent dd44c068c5
commit 3cb69a9ce4
3 changed files with 8 additions and 1 deletions

View File

@ -9,6 +9,10 @@ Changes in version 0.1.2.18 - 2007-??-??
connections: they specify their chosen rendezvous point by identity connections: they specify their chosen rendezvous point by identity
digest rather than by (potentially ambiguous) nickname. These digest rather than by (potentially ambiguous) nickname. These
changes could speed up hidden service connections dramatically. changes could speed up hidden service connections dramatically.
- If a connection is shut down abruptly because of something that
happened inside connection_flushed_some(), do not call
connection_finished_flushing(). Should fix bug 451. Bugfix on
0.1.2.7-alpha.
o Minor bugfixes: o Minor bugfixes:
- Don't try to access (or alter) the state file when running - Don't try to access (or alter) the state file when running

View File

@ -4,7 +4,7 @@ description of the patch.)
Backport items for 0.1.2: Backport items for 0.1.2:
o r11166: Don't believe future dates from the state file. o r11166: Don't believe future dates from the state file.
o r11828+: Detect bad sa_family from accept(). o r11828+: Detect bad sa_family from accept().
N - r11882: Avoid crash-bug 451. o r11882: Avoid crash-bug 451.
N - r11886: Consider family as well as identity when cannibalizing circuits. N - r11886: Consider family as well as identity when cannibalizing circuits.

View File

@ -2289,6 +2289,9 @@ connection_finished_flushing(connection_t *conn)
{ {
tor_assert(conn); tor_assert(conn);
if (conn->s < 0 || !conn->write_event)
return 0;
// log_fn(LOG_DEBUG,"entered. Socket %u.", conn->s); // log_fn(LOG_DEBUG,"entered. Socket %u.", conn->s);
switch (conn->type) { switch (conn->type) {