diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/common/tortls.c | 6 |
2 files changed, 5 insertions, 4 deletions
@@ -28,6 +28,9 @@ Changes in version 0.2.0.22-rc - 2008-03-17 o Major bugfixes: - Make sure servers always request certificates from clients during TLS renegotiation. Reported by lodger; bugfix on 0.2.0.20-rc. + - Do not enter a CPU-eating loop when a connection is closed in the middle + of client-side TLS renegotiation. Fixes bug 622. Bug diagnosed by + lodger. o Minor bugfixes (on 0.1.2.x): - Generate "STATUS_SERVER" events rather than misspelled diff --git a/src/common/tortls.c b/src/common/tortls.c index 1352f79533..fb5fb7ee1a 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -992,8 +992,7 @@ tor_tls_renegotiate(tor_tls_t *tls) if (tls->state != TOR_TLS_ST_RENEGOTIATE) { int r = SSL_renegotiate(tls->ssl); if (r <= 0) { - return tor_tls_get_error(tls, r, CATCH_SYSCALL|CATCH_ZERO, - "renegotiating", LOG_WARN); + return tor_tls_get_error(tls, r, 0, "renegotiating", LOG_WARN); } tls->state = TOR_TLS_ST_RENEGOTIATE; } @@ -1002,8 +1001,7 @@ tor_tls_renegotiate(tor_tls_t *tls) tls->state = TOR_TLS_ST_OPEN; return TOR_TLS_DONE; } else - return tor_tls_get_error(tls, r, CATCH_SYSCALL|CATCH_ZERO, - "renegotiating handshake", LOG_INFO); + return tor_tls_get_error(tls, r, 0, "renegotiating handshake", LOG_INFO); } /** Shut down an open tls connection <b>tls</b>. When finished, returns |