summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2016-09-22 12:34:59 +0000
committerjsing <>2016-09-22 12:34:59 +0000
commit3d3ba707c5ca80bd90ebaa79e16157797d4e4b68 (patch)
tree099469da8d352be51cb09f9a9bafce4496214ac6 /src
parent53cf491d8405e23b0f0b5b740684df633ecec3b9 (diff)
downloadopenbsd-3d3ba707c5ca80bd90ebaa79e16157797d4e4b68.tar.gz
openbsd-3d3ba707c5ca80bd90ebaa79e16157797d4e4b68.tar.bz2
openbsd-3d3ba707c5ca80bd90ebaa79e16157797d4e4b68.zip
Improve on code from the previous commit.
ok bcook@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl_lib.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 59a90d4b8e..3596315166 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.117 2016/09/20 04:25:09 bcook Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.118 2016/09/22 12:34:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2848,6 +2848,7 @@ SSL_CTX *
2848SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx) 2848SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx)
2849{ 2849{
2850 CERT *ocert = ssl->cert; 2850 CERT *ocert = ssl->cert;
2851
2851 if (ssl->ctx == ctx) 2852 if (ssl->ctx == ctx)
2852 return (ssl->ctx); 2853 return (ssl->ctx);
2853 if (ctx == NULL) 2854 if (ctx == NULL)
@@ -2855,12 +2856,9 @@ SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx)
2855 ssl->cert = ssl_cert_dup(ctx->cert); 2856 ssl->cert = ssl_cert_dup(ctx->cert);
2856 if (ocert != NULL) { 2857 if (ocert != NULL) {
2857 int i; 2858 int i;
2858 /* Copy negotiated digests from original */ 2859 /* Copy negotiated digests from original certificate. */
2859 for (i = 0; i < SSL_PKEY_NUM; i++) { 2860 for (i = 0; i < SSL_PKEY_NUM; i++)
2860 CERT_PKEY *cpk = ocert->pkeys + i; 2861 ssl->cert->pkeys[i].digest = ocert->pkeys[i].digest;
2861 CERT_PKEY *rpk = ssl->cert->pkeys + i;
2862 rpk->digest = cpk->digest;
2863 }
2864 ssl_cert_free(ocert); 2862 ssl_cert_free(ocert);
2865 } 2863 }
2866 CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); 2864 CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX);