tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 3c071f30029adcbae795150bb7d19ad2f4734658
parent d08d29f15f0c80b74f6440b8b84eefe241c87aad
Author: Nick Mathewson <nickm@torproject.org>
Date:   Tue, 22 Oct 2019 12:54:37 -0400

Merge remote-tracking branch 'tor-github/pr/1330' into maint-0.4.1

Diffstat:
Achanges/bug31107 | 4++++
Msrc/core/or/channeltls.c | 10+++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/changes/bug31107 b/changes/bug31107 @@ -0,0 +1,4 @@ + o Minor bugfixes (logging, protocol violations): + - Do not log a nonfatal assertion failure when receiving a VERSIONS + cell on a connection using the obsolete v1 link protocol. Log a + protocol_warn instead. Fixes bug 31107; bugfix on 0.2.4.4-alpha. diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c @@ -1106,7 +1106,15 @@ channel_tls_handle_cell(cell_t *cell, or_connection_t *conn) /* do nothing */ break; case CELL_VERSIONS: - tor_fragile_assert(); + /* A VERSIONS cell should always be a variable-length cell, and + * so should never reach this function (which handles constant-sized + * cells). But if the connection is using the (obsolete) v1 link + * protocol, all cells will be treated as constant-sized, and so + * it's possible we'll reach this code. + */ + log_fn(LOG_PROTOCOL_WARN, LD_CHANNEL, + "Received unexpected VERSIONS cell on a channel using link " + "protocol %d; ignoring.", conn->link_proto); break; case CELL_NETINFO: ++stats_n_netinfo_cells_processed;