Don't schedule excess_renegotiations_callback unless it's set

Partial fix for bug 4587; reported by "frosty_un".
This commit is contained in:
Nick Mathewson 2011-11-27 08:21:59 -05:00
parent 58d1aa4402
commit 617617e21a

View File

@ -1318,7 +1318,8 @@ tor_tls_got_client_hello(tor_tls_t *tls)
} }
tls->got_renegotiate = 1; tls->got_renegotiate = 1;
} else if (tls->server_handshake_count > 2) { } else if (tls->server_handshake_count > 2 &&
tls->excess_renegotiations_callback) {
/* We got more than one renegotiation requests. The Tor protocol /* We got more than one renegotiation requests. The Tor protocol
needs just one renegotiation; more than that probably means needs just one renegotiation; more than that probably means
They are trying to DoS us and we have to stop them. We can't They are trying to DoS us and we have to stop them. We can't