From 3d3ba707c5ca80bd90ebaa79e16157797d4e4b68 Mon Sep 17 00:00:00 2001
From: jsing <>
Date: Thu, 22 Sep 2016 12:34:59 +0000
Subject: Improve on code from the previous commit.

ok bcook@
---
 src/lib/libssl/ssl_lib.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

(limited to 'src/lib')

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 @@
-/* $OpenBSD: ssl_lib.c,v 1.117 2016/09/20 04:25:09 bcook Exp $ */
+/* $OpenBSD: ssl_lib.c,v 1.118 2016/09/22 12:34:59 jsing Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -2848,6 +2848,7 @@ SSL_CTX *
 SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx)
 {
 	CERT *ocert = ssl->cert;
+
 	if (ssl->ctx == ctx)
 		return (ssl->ctx);
 	if (ctx == NULL)
@@ -2855,12 +2856,9 @@ SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx)
 	ssl->cert = ssl_cert_dup(ctx->cert);
 	if (ocert != NULL) {
 		int i;
-		/* Copy negotiated digests from original */
-		for (i = 0; i < SSL_PKEY_NUM; i++) {
-			CERT_PKEY *cpk = ocert->pkeys + i;
-			CERT_PKEY *rpk = ssl->cert->pkeys + i;
-			rpk->digest = cpk->digest;
-		}
+		/* Copy negotiated digests from original certificate. */
+		for (i = 0; i < SSL_PKEY_NUM; i++)
+			ssl->cert->pkeys[i].digest = ocert->pkeys[i].digest;
 		ssl_cert_free(ocert);
 	}
 	CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX);
-- 
cgit v1.2.3-55-g6feb