summaryrefslogtreecommitdiff
path: root/src/lib/libssl/tls13_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/tls13_server.c')
-rw-r--r--src/lib/libssl/tls13_server.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/libssl/tls13_server.c b/src/lib/libssl/tls13_server.c
index 4edf3881c2..e31ae38076 100644
--- a/src/lib/libssl/tls13_server.c
+++ b/src/lib/libssl/tls13_server.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_server.c,v 1.92 2022/01/08 12:43:45 jsing Exp $ */ 1/* $OpenBSD: tls13_server.c,v 1.93 2022/01/08 12:59:59 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2020 Bob Beck <beck@openbsd.org> 4 * Copyright (c) 2020 Bob Beck <beck@openbsd.org>
@@ -921,21 +921,19 @@ tls13_client_certificate_recv(struct tls13_ctx *ctx, CBS *cbs)
921 if ((cert_idx = ssl_cert_type(cert, pkey)) < 0) 921 if ((cert_idx = ssl_cert_type(cert, pkey)) < 0)
922 goto err; 922 goto err;
923 923
924 ssl_sess_cert_free(s->session->sess_cert); 924 sk_X509_pop_free(s->session->cert_chain, X509_free);
925 if ((s->session->sess_cert = ssl_sess_cert_new()) == NULL) 925 s->session->cert_chain = certs;
926 goto err;
927
928 s->session->sess_cert->cert_chain = certs;
929 certs = NULL; 926 certs = NULL;
930 927
931 X509_up_ref(cert); 928 X509_up_ref(cert);
932 s->session->sess_cert->peer_pkeys[cert_idx].x509 = cert; 929 X509_free(s->session->peer_pkeys[cert_idx].x509);
933 s->session->sess_cert->peer_key = &(s->session->sess_cert->peer_pkeys[cert_idx]); 930 s->session->peer_pkeys[cert_idx].x509 = cert;
934 931 s->session->peer_key = &s->session->peer_pkeys[cert_idx];
935 X509_free(s->session->peer);
936 932
937 X509_up_ref(cert); 933 X509_up_ref(cert);
934 X509_free(s->session->peer);
938 s->session->peer = cert; 935 s->session->peer = cert;
936
939 s->session->verify_result = s->verify_result; 937 s->session->verify_result = s->verify_result;
940 938
941 ctx->handshake_stage.hs_type |= WITH_CCV; 939 ctx->handshake_stage.hs_type |= WITH_CCV;