tor

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

commit 1710f4bbd6bb100901e7f601a1c0f96b51845f86
parent 54e249e269c63fd5f003dd8c15faa6a13902f8e4
Author: Nick Mathewson <nickm@torproject.org>
Date:   Thu,  4 Apr 2019 11:24:55 -0400

Do not cache bogus results from classifying client ciphers

When classifying a client's selection of TLS ciphers, if the client
ciphers are not yet available, do not cache the result. Previously,
we had cached the unavailability of the cipher list and never looked
again, which in turn led us to assume that the client only supported
the ancient V1 link protocol.  This, in turn, was causing Stem
integration tests to stall in some cases.  Fixes bug 30021; bugfix
on 0.2.4.8-alpha.

Diffstat:
Achanges/bug30021 | 8++++++++
Msrc/common/tortls.c | 2+-
2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/changes/bug30021 b/changes/bug30021 @@ -0,0 +1,8 @@ + o Minor bugfixes (TLS protocol, integration tests): + - When classifying a client's selection of TLS ciphers, if the client + ciphers are not yet available, do not cache the result. Previously, + we had cached the unavailability of the cipher list and never looked + again, which in turn led us to assume that the client only supported + the ancient V1 link protocol. This, in turn, was causing Stem + integration tests to stall in some cases. + Fixes bug 30021; bugfix on 0.2.4.8-alpha. diff --git a/src/common/tortls.c b/src/common/tortls.c @@ -1500,7 +1500,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl, smartlist_free(elts); } done: - if (tor_tls) + if (tor_tls && peer_ciphers) return tor_tls->client_cipher_list_type = res; return res;