diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 12 |
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 * | |||
| 2848 | SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx) | 2848 | SSL_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); |
