r18919@catbus: nickm | 2008-03-18 10:53:38 -0400

Forward-port bug 622 fix as diagnosed by lodger.


svn:r14096
This commit is contained in:
Nick Mathewson 2008-03-18 14:53:41 +00:00
parent ba915e4211
commit 05f5d778a2
2 changed files with 5 additions and 4 deletions

View File

@ -28,6 +28,9 @@ Changes in version 0.2.0.22-rc - 2008-03-17
o Major bugfixes: o Major bugfixes:
- Make sure servers always request certificates from clients during - Make sure servers always request certificates from clients during
TLS renegotiation. Reported by lodger; bugfix on 0.2.0.20-rc. 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): o Minor bugfixes (on 0.1.2.x):
- Generate "STATUS_SERVER" events rather than misspelled - Generate "STATUS_SERVER" events rather than misspelled

View File

@ -992,8 +992,7 @@ tor_tls_renegotiate(tor_tls_t *tls)
if (tls->state != TOR_TLS_ST_RENEGOTIATE) { if (tls->state != TOR_TLS_ST_RENEGOTIATE) {
int r = SSL_renegotiate(tls->ssl); int r = SSL_renegotiate(tls->ssl);
if (r <= 0) { if (r <= 0) {
return tor_tls_get_error(tls, r, CATCH_SYSCALL|CATCH_ZERO, return tor_tls_get_error(tls, r, 0, "renegotiating", LOG_WARN);
"renegotiating", LOG_WARN);
} }
tls->state = TOR_TLS_ST_RENEGOTIATE; tls->state = TOR_TLS_ST_RENEGOTIATE;
} }
@ -1002,8 +1001,7 @@ tor_tls_renegotiate(tor_tls_t *tls)
tls->state = TOR_TLS_ST_OPEN; tls->state = TOR_TLS_ST_OPEN;
return TOR_TLS_DONE; return TOR_TLS_DONE;
} else } else
return tor_tls_get_error(tls, r, CATCH_SYSCALL|CATCH_ZERO, return tor_tls_get_error(tls, r, 0, "renegotiating handshake", LOG_INFO);
"renegotiating handshake", LOG_INFO);
} }
/** Shut down an open tls connection <b>tls</b>. When finished, returns /** Shut down an open tls connection <b>tls</b>. When finished, returns