aboutsummaryrefslogtreecommitdiff
path: root/ssl/ssl_sess.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-06-30 13:58:25 +0100
committerDr. Stephen Henson <steve@openssl.org>2015-06-30 14:00:43 +0100
commit36f038f1041f9f31878f75b567959ceae08eb34e (patch)
treef0509c3de499be8f91613d09ee9024f84b92af95 /ssl/ssl_sess.c
parent5fced2395ddfb603a50fd1bd87411e603a59dc6f (diff)
downloadopenssl-36f038f1041f9f31878f75b567959ceae08eb34e.zip
openssl-36f038f1041f9f31878f75b567959ceae08eb34e.tar.gz
openssl-36f038f1041f9f31878f75b567959ceae08eb34e.tar.bz2
Dup peer_chain properly in SSL_SESSION
Reviewed-by: Matt Caswell <matt@openssl.org>
Diffstat (limited to 'ssl/ssl_sess.c')
-rw-r--r--ssl/ssl_sess.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
index 03c6ac0..9063bca 100644
--- a/ssl/ssl_sess.c
+++ b/ssl/ssl_sess.c
@@ -268,6 +268,12 @@ SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket)
if (src->peer != NULL)
CRYPTO_add(&src->peer->references, 1, CRYPTO_LOCK_X509);
+ if (src->peer_chain != NULL) {
+ dest->peer_chain = X509_chain_up_ref(src->peer_chain);
+ if (dest->peer_chain == NULL)
+ goto err;
+ }
+
#ifndef OPENSSL_NO_PSK
if (src->psk_identity_hint) {
dest->psk_identity_hint = BUF_strdup(src->psk_identity_hint);