diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-01-04 03:03:40 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-01-04 03:03:40 +0000 |
commit | 569e882496a33cc9b9deb45288671e10b31af31e (patch) | |
tree | dae0f5cdafe787c7a32738e254f65b163bd7c0c9 | |
parent | 6515b74f0e3e3caf53c1ee3c09c6131e9b4b8393 (diff) | |
download | tor-569e882496a33cc9b9deb45288671e10b31af31e.tar.gz tor-569e882496a33cc9b9deb45288671e10b31af31e.zip |
Backport r17137: Patch from rovv: send back END cell in response to connect attempts to nonexistent hidden service port.
svn:r17868
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | doc/TODO.020 | 2 | ||||
-rw-r--r-- | src/or/connection_edge.c | 2 |
3 files changed, 5 insertions, 2 deletions
@@ -49,6 +49,9 @@ Changes in version 0.2.0.33 - 200?-??-?? - Fix a race condition when freeing keys shared between main thread and CPU workers that could result in a memory leak. Bugfix on 0.1.0.1-rc. Fixes bug 889. + - Send a valid END cell back when a client tries to connect to a + nonexistent hidden service port. Bugfix on 0.1.2.15. Fixes bug + 840. Patch from rovv. o Minor features: - Report the case where all signatures in a detached set are rejected diff --git a/doc/TODO.020 b/doc/TODO.020 index da06a8f57b..1cb129c75b 100644 --- a/doc/TODO.020 +++ b/doc/TODO.020 @@ -16,7 +16,7 @@ Backport for 0.2.0 once better tested: "no circuits are pending." o See also r17181... o ... and r17184. - - r17137: send END cell in response to connect to nonexistent hidserv port. + o r17137: send END cell in response to connect to nonexistent hidserv port. - r17138: reject *:* servers should never do DNS lookups. o r17139: Fix another case of overriding .exit choices. - r17162 and r17164: fix another case of not checking cpath_layer. diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 0917bb51f5..6044d6b877 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -2497,7 +2497,7 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ) n_stream->_base.port); end_payload[0] = END_STREAM_REASON_EXITPOLICY; relay_send_command_from_edge(rh.stream_id, circ, RELAY_COMMAND_END, - end_payload, 1, NULL); + end_payload, 1, origin_circ->cpath->prev); connection_free(TO_CONN(n_stream)); tor_free(address); return 0; |