From 26f426846ec3798a27f19600f05e4e41446d5b4f Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Mon, 23 Jan 2017 16:59:23 -0600 Subject: [PATCH 1/1] Store the number of extensions in CLIENTHELLO_MSG Keep track of the length of the pre_proc_exts array. Reviewed-by: Matt Caswell Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/2279) --- ssl/ssl_locl.h | 1 + ssl/statem/statem_srvr.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h index 6557834265..f671860fa3 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h @@ -1797,6 +1797,7 @@ typedef struct { size_t compressions_len; unsigned char compressions[MAX_COMPRESSIONS_SIZE]; PACKET extensions; + size_t pre_proc_exts_len; RAW_EXTENSION *pre_proc_exts; } CLIENTHELLO_MSG; diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c index 28f3b24cd6..ca020c5511 100644 --- a/ssl/statem/statem_srvr.c +++ b/ssl/statem/statem_srvr.c @@ -1423,7 +1423,8 @@ MSG_PROCESS_RETURN tls_process_client_hello(SSL *s, PACKET *pkt) /* Preserve the raw extensions PACKET for later use */ extensions = clienthello.extensions; if (!tls_collect_extensions(s, &extensions, EXT_CLIENT_HELLO, - &clienthello.pre_proc_exts, &al, NULL)) { + &clienthello.pre_proc_exts, &al, + &clienthello.pre_proc_exts_len)) { /* SSLerr already been called */ goto f_err; } -- 2.34.1