aboutsummaryrefslogtreecommitdiff
path: root/src/or/relay.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-08-15 13:16:41 -0400
committerNick Mathewson <nickm@torproject.org>2012-08-15 13:16:41 -0400
commitcdd882ee71fb2966854fe271d9896b7bf389b35c (patch)
tree837a01b666738c9794dd00541488a812b5ae0c03 /src/or/relay.c
parentc9d3e09cf8d7fb5e2ed1e9f7bb5e37a1a1319792 (diff)
downloadtor-cdd882ee71fb2966854fe271d9896b7bf389b35c.tar.gz
tor-cdd882ee71fb2966854fe271d9896b7bf389b35c.zip
Check for stream_id, not conn, on extend cells.
Extend cells aren't allowed to have a stream_id, but we were only blocking them when they had a stream_id that corresponded to a connection. As far as I can tell, this change is harmless: it will make some kinds of broken clients not work any more, but afaik nobody actually make a client that was broken in that way. Found while hunting for other places where we made the same mistake as in 6271. Bugfix on d7f50337c14c back from May 2003, which introduced telescoping circuit construction into 0.0.2pre8.
Diffstat (limited to 'src/or/relay.c')
-rw-r--r--src/or/relay.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/relay.c b/src/or/relay.c
index 33735dea2a..a866d2d4ea 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -1175,7 +1175,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
case RELAY_COMMAND_EXTEND: {
static uint64_t total_n_extend=0, total_nonearly=0;
total_n_extend++;
- if (conn) {
+ if (rh.stream_id) {
log_fn(LOG_PROTOCOL_WARN, domain,
"'extend' cell received for non-zero stream. Dropping.");
return 0;