diff options
Diffstat (limited to 'src/lib/libtls/tls.c')
-rw-r--r-- | src/lib/libtls/tls.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libtls/tls.c b/src/lib/libtls/tls.c index 419554818c..446f93430d 100644 --- a/src/lib/libtls/tls.c +++ b/src/lib/libtls/tls.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls.c,v 1.60 2017/04/05 03:13:53 beck Exp $ */ | 1 | /* $OpenBSD: tls.c,v 1.61 2017/04/05 03:19:22 beck Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -528,6 +528,8 @@ tls_reset(struct tls *ctx) | |||
528 | ctx->ssl_conn = NULL; | 528 | ctx->ssl_conn = NULL; |
529 | ctx->ssl_ctx = NULL; | 529 | ctx->ssl_ctx = NULL; |
530 | ctx->ssl_peer_cert = NULL; | 530 | ctx->ssl_peer_cert = NULL; |
531 | /* X509 objects in chain are freed with the SSL */ | ||
532 | ctx->ssl_peer_chain = NULL; | ||
531 | 533 | ||
532 | ctx->socket = -1; | 534 | ctx->socket = -1; |
533 | ctx->state = 0; | 535 | ctx->state = 0; |
@@ -625,6 +627,7 @@ tls_handshake(struct tls *ctx) | |||
625 | 627 | ||
626 | if (rv == 0) { | 628 | if (rv == 0) { |
627 | ctx->ssl_peer_cert = SSL_get_peer_certificate(ctx->ssl_conn); | 629 | ctx->ssl_peer_cert = SSL_get_peer_certificate(ctx->ssl_conn); |
630 | ctx->ssl_peer_chain = SSL_get_peer_cert_chain(ctx->ssl_conn); | ||
628 | if (tls_conninfo_populate(ctx) == -1) | 631 | if (tls_conninfo_populate(ctx) == -1) |
629 | rv = -1; | 632 | rv = -1; |
630 | if (ctx->ocsp == NULL) | 633 | if (ctx->ocsp == NULL) |