Fix bug introduced by the attempt to fix client side external session
caching (#288): now internal caching failed (#351): Make sure, that cipher_id is set before comparing. Submitted by: Reviewed by: PR: 288 (and 351)
This commit is contained in:
parent
3d2fd99573
commit
e824df317a
2 changed files with 12 additions and 0 deletions
7
CHANGES
7
CHANGES
|
@ -4,6 +4,13 @@
|
|||
|
||||
Changes between 0.9.6g and 0.9.6h [xx XXX xxxx]
|
||||
|
||||
*) Bugfix: client side session caching did not work with external caching,
|
||||
because the session->cipher setting was not restored when reloading
|
||||
from the external cache. This problem was masked, when
|
||||
SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG (part of SSL_OP_ALL) was set.
|
||||
(Found by Steve Haslam <steve@araqnid.ddts.net>.)
|
||||
[Lutz Jaenicke]
|
||||
|
||||
*) Fix client_certificate (ssl/s2_clnt.c): The permissible total
|
||||
length of the REQUEST-CERTIFICATE message is 18 .. 34, not 17 .. 33.
|
||||
[Zeev Lieber <zeev-l@yahoo.com>]
|
||||
|
|
|
@ -695,6 +695,11 @@ static int ssl3_get_server_hello(SSL *s)
|
|||
goto f_err;
|
||||
}
|
||||
|
||||
/* Depending on the session caching (internal/external), the cipher
|
||||
and/or cipher_id values may not be set. Make sure that
|
||||
cipher_id is set and use it for comparison. */
|
||||
if (s->session->cipher)
|
||||
s->session->cipher_id = s->session->cipher->id;
|
||||
if (s->hit && (s->session->cipher_id != c->id))
|
||||
{
|
||||
if (!(s->options &
|
||||
|
|
Loading…
Reference in a new issue