From 0dd2254d7667979ea998af1f480a7841ea864ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lutz=20J=C3=A4nicke?= Date: Wed, 29 Nov 2000 16:04:38 +0000 Subject: [PATCH] Store verify_result with sessions to avoid potential security hole. For the server side this was already done one year ago :-( --- ssl/s2_clnt.c | 1 + ssl/s3_clnt.c | 1 + ssl/ssl_sess.c | 1 + 3 files changed, 3 insertions(+) diff --git a/ssl/s2_clnt.c b/ssl/s2_clnt.c index 47dd09c28..28d6d6529 100644 --- a/ssl/s2_clnt.c +++ b/ssl/s2_clnt.c @@ -921,6 +921,7 @@ int ssl2_set_certificate(SSL *s, int type, int len, unsigned char *data) goto err; } ERR_clear_error(); /* but we keep s->verify_result */ + s->session->verify_result = s->verify_result; /* server's cert for this session */ sc=ssl_sess_cert_new(); diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c index 62040f9f1..eec45cfa4 100644 --- a/ssl/s3_clnt.c +++ b/ssl/s3_clnt.c @@ -815,6 +815,7 @@ static int ssl3_get_server_certificate(SSL *s) X509_free(s->session->peer); CRYPTO_add(&x->references,1,CRYPTO_LOCK_X509); s->session->peer=x; + s->session->verify_result = s->verify_result; x=NULL; ret=1; diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c index 416def890..7064262de 100644 --- a/ssl/ssl_sess.c +++ b/ssl/ssl_sess.c @@ -508,6 +508,7 @@ int SSL_set_session(SSL *s, SSL_SESSION *session) if (s->session != NULL) SSL_SESSION_free(s->session); s->session=session; + s->verify_result = s->session->verify_result; /* CRYPTO_w_unlock(CRYPTO_LOCK_SSL);*/ ret=1; }