From: Matt Caswell Date: Mon, 31 Jul 2017 10:42:48 +0000 (+0100) Subject: Make sure we save ALPN data in the session X-Git-Tag: OpenSSL_1_1_1-pre1~719 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=ae8d7d994afb38c8309770f68212bf51380b8941 Make sure we save ALPN data in the session Reviewed-by: Ben Kaduk (Merged from https://github.com/openssl/openssl/pull/3926) --- 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; }