aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-07-17 11:25:56 +0200
committerNick Mathewson <nickm@torproject.org>2014-07-17 11:25:56 +0200
commit66798dfdc069ffc2ce1a9cb84529d2015dd3cd66 (patch)
tree527b2c0f4dbe2e0ebd32db5100c8073723c607b0
parentf5ce580babc5ca8466da02c53669a58bde8f5445 (diff)
downloadtor-66798dfdc069ffc2ce1a9cb84529d2015dd3cd66.tar.gz
tor-66798dfdc069ffc2ce1a9cb84529d2015dd3cd66.zip
Fix compilation with no-compression OpenSSL builds and forks
Found because LibreSSL has OPENSSL_NO_COMP always-on, but this conflicts with the way that _we_ turn off compression. Patch from dhill, who attributes it to "OpenBSD". Fixes bug 12602; bugfix on 0.2.1.1-alpha, which introduced this turn-compression-off code.
-rw-r--r--changes/bug126025
-rw-r--r--src/common/tortls.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/changes/bug12602 b/changes/bug12602
new file mode 100644
index 0000000000..29fa49ac45
--- /dev/null
+++ b/changes/bug12602
@@ -0,0 +1,5 @@
+ o Minor bugfixes (portability):
+ - Compile correctly with builds and forks of OpenSSL (such as
+ LibreSSL) that disable compression. Fixes bug 12602; bugfix on
+ 0.2.1.1-alpha. Patch from "dhill".
+
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 8f3f6a7130..751856d973 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1345,10 +1345,12 @@ tor_tls_context_new(crypto_pk_t *identity, unsigned int key_lifetime,
SSL_CTX_set_options(result->ctx,
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION);
}
+#ifndef OPENSSL_NO_COMP
/* Don't actually allow compression; it uses ram and time, but the data
* we transmit is all encrypted anyway. */
if (result->ctx->comp_methods)
result->ctx->comp_methods = NULL;
+#endif
#ifdef SSL_MODE_RELEASE_BUFFERS
SSL_CTX_set_mode(result->ctx, SSL_MODE_RELEASE_BUFFERS);
#endif