]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Do not cache bogus results from classifying client ciphers
authorNick Mathewson <nickm@torproject.org>
Thu, 4 Apr 2019 15:24:55 +0000 (11:24 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 4 Apr 2019 15:24:55 +0000 (11:24 -0400)
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.

changes/bug30021 [new file with mode: 0644]
src/common/tortls.c

diff --git a/changes/bug30021 b/changes/bug30021
new file mode 100644 (file)
index 0000000..2a887f3
--- /dev/null
@@ -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.
index 1fbe3c663e80173de9471d21872739277a808c61..f79969d0da30f412043208725ed67a7ee0758e1c 100644 (file)
@@ -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;