From: Benjamin Kaduk Date: Mon, 23 Jan 2017 22:59:23 +0000 (-0600) Subject: Store the number of extensions in CLIENTHELLO_MSG X-Git-Tag: OpenSSL_1_1_1-pre1~2298 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=26f426846ec3798a27f19600f05e4e41446d5b4f;p=oweals%2Fopenssl.git 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) --- 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; }