diff options
author | teor <teor@torproject.org> | 2019-11-06 11:14:53 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2019-11-06 11:14:53 +1000 |
commit | c06d540ff9b507e0fa9749948fe406fb17dbee73 (patch) | |
tree | 41a40d47e8f77865651b8da71751298f00be8838 | |
parent | 752c35ca9673c91a9edff84f2efaabe4d04c9c60 (diff) | |
parent | 3c97ab3c24ba4a133377c7ec6ec89cc6903ffb2e (diff) | |
download | tor-c06d540ff9b507e0fa9749948fe406fb17dbee73.tar.gz tor-c06d540ff9b507e0fa9749948fe406fb17dbee73.zip |
Merge remote-tracking branch 'tor-github/pr/1330' into maint-0.2.9
-rw-r--r-- | changes/bug31107 | 4 | ||||
-rw-r--r-- | src/or/channeltls.c | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/changes/bug31107 b/changes/bug31107 new file mode 100644 index 0000000000..9652927c30 --- /dev/null +++ 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/or/channeltls.c b/src/or/channeltls.c index d44f719138..6f4e413dc6 100644 --- a/src/or/channeltls.c +++ b/src/or/channeltls.c @@ -1098,7 +1098,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; |