Explorar o código

Don't schedule excess_renegotiations_callback unless it's set

Partial fix for bug 4587; reported by "frosty_un".
Nick Mathewson %!s(int64=15) %!d(string=hai) anos
pai
achega
617617e21a
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/common/tortls.c

+ 2 - 1
src/common/tortls.c

@@ -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