summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-04-15 10:35:09 -0400
committerNick Mathewson <nickm@torproject.org>2010-04-15 10:35:09 -0400
commitc38fa93ad180e2d53f759821386d2b1dbff90100 (patch)
treef4d597edced50ef9982027be535aa2e2d4b72a61
parentc29977ce00fc70c96abfa6600b3d3ccb4939bad2 (diff)
parent6ad09cc6afa4d620978b6b18f7f134d15903dcc1 (diff)
downloadtor-c38fa93ad180e2d53f759821386d2b1dbff90100.tar.gz
tor-c38fa93ad180e2d53f759821386d2b1dbff90100.zip
Merge commit 'origin/maint-0.2.1'
-rw-r--r--changes/use_ssl_option_everywhere5
-rw-r--r--src/common/tortls.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/changes/use_ssl_option_everywhere b/changes/use_ssl_option_everywhere
new file mode 100644
index 0000000000..02adb3c8b4
--- /dev/null
+++ b/changes/use_ssl_option_everywhere
@@ -0,0 +1,5 @@
+ o Major bugfixes:
+ - Fix SSL renegotiation behavior on OpenSSL versions that claim to
+ be earlier than 0.9.8m, but which have in reality backported huge
+ swaths of 0.9.8m or 0.9.8n renegotiation behavior. Possibly fix
+ for some cases of bug 1346.
diff --git a/src/common/tortls.c b/src/common/tortls.c
index b4984802fb..df77fb066f 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -368,8 +368,8 @@ tor_tls_init(void)
* OpenSSL 0.9.8l.
*
* No, we can't just set flag 0x0010 everywhere. It breaks Tor with
- * OpenSSL 1.0.0beta3 and later. No, we can't just set option
- * 0x00040000L everywhere: before 0.9.8m, it meant something else.
+ * OpenSSL 1.0.0beta3 and later. On the other hand, we might be able to
+ * set option 0x00040000L everywhere.
*
* No, we can't simply detect whether the flag or the option is present
* in the headers at build-time: some vendors (notably Apple) like to
@@ -393,10 +393,12 @@ tor_tls_init(void)
} else if (version < 0x009080c0L) {
log_notice(LD_GENERAL, "OpenSSL %s [%lx] looks like it's older than "
"0.9.8l, but some vendors have backported 0.9.8l's "
- "renegotiation code to earlier versions. I'll set "
- "SSL3_FLAGS just to be safe.",
+ "renegotiation code to earlier versions, and some have "
+ "backported the code from 0.9.8m or 0.9.8n. I'll set both "
+ "SSL3_FLAGS and SSL_OP just to be safe.",
SSLeay_version(SSLEAY_VERSION), version);
use_unsafe_renegotiation_flag = 1;
+ use_unsafe_renegotiation_op = 1;
} else {
log_info(LD_GENERAL, "OpenSSL %s has version %lx",
SSLeay_version(SSLEAY_VERSION), version);