From ae8d7d994afb38c8309770f68212bf51380b8941 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Mon, 31 Jul 2017 11:42:48 +0100 Subject: [PATCH] Make sure we save ALPN data in the session Reviewed-by: Ben Kaduk (Merged from https://github.com/openssl/openssl/pull/3926) --- ssl/statem/extensions_clnt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ssl/statem/extensions_clnt.c b/ssl/statem/extensions_clnt.c index 3a198f421c..329a8007ee 100644 --- a/ssl/statem/extensions_clnt.c +++ b/ssl/statem/extensions_clnt.c @@ -1400,6 +1400,17 @@ int tls_parse_stoc_alpn(SSL *s, PACKET *pkt, unsigned int context, X509 *x, } s->s3->alpn_selected_len = len; + /* We also put a copy in the session */ + OPENSSL_free(s->session->ext.alpn_selected); + s->session->ext.alpn_selected = OPENSSL_memdup(s->s3->alpn_selected, + s->s3->alpn_selected_len); + s->session->ext.alpn_selected_len = s->s3->alpn_selected_len; + + if (s->session->ext.alpn_selected == NULL) { + *al = SSL_AD_INTERNAL_ERROR; + return 0; + } + return 1; } -- 2.34.1