diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-06-08 10:17:00 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-06-08 10:17:00 -0400 |
commit | f399887cfec8ddaf33cac06b2abad25a3d42aac9 (patch) | |
tree | f232f399301f68f64150d263e1b5bbd45fce6c2f /src | |
parent | 307008e869d3e1fc66490e49b70a0586a704f1d7 (diff) | |
parent | 2b734944af88f17dfe6ce9bf7402d6aa1211d710 (diff) | |
download | tor-f399887cfec8ddaf33cac06b2abad25a3d42aac9.tar.gz tor-f399887cfec8ddaf33cac06b2abad25a3d42aac9.zip |
Merge remote-tracking branch 'mikeperry-github/bug26259'
Diffstat (limited to 'src')
-rw-r--r-- | src/or/relay.c | 2 | ||||
-rw-r--r-- | src/test/test_relaycell.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/or/relay.c b/src/or/relay.c index 0aa15203f3..50f59d6b99 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -1556,7 +1556,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, return -END_CIRC_REASON_TORPROTOCOL; } /* Total all valid application bytes delivered */ - if (CIRCUIT_IS_ORIGIN(circ)) { + if (CIRCUIT_IS_ORIGIN(circ) && rh.length > 0) { circuit_read_valid_data(TO_ORIGIN_CIRCUIT(circ), rh.length); } diff --git a/src/test/test_relaycell.c b/src/test/test_relaycell.c index 1db5202739..52f4d6113e 100644 --- a/src/test/test_relaycell.c +++ b/src/test/test_relaycell.c @@ -233,6 +233,13 @@ test_circbw_relay(void *arg) circ->cpath); ASSERT_COUNTED_BW(); + /* Empty Data cell on open connection: not counted */ + ENTRY_TO_CONN(entryconn)->marked_for_close = 0; + PACK_CELL(1, RELAY_COMMAND_DATA, ""); + connection_edge_process_relay_cell(&cell, TO_CIRCUIT(circ), edgeconn, + circ->cpath); + ASSERT_UNCOUNTED_BW(); + /* Sendme on stream: not counted */ ENTRY_TO_CONN(entryconn)->outbuf_flushlen = 0; PACK_CELL(1, RELAY_COMMAND_SENDME, "Data1234"); |