diff options
author | Benjamin Kaduk <bkaduk@akamai.com> | 2017-09-01 12:37:05 -0500 |
---|---|---|
committer | Benjamin Kaduk <kaduk@mit.edu> | 2017-09-01 12:44:58 -0500 |
commit | c4604e9b97a4f6c4fd532dbab0fc4b1fdad81276 (patch) | |
tree | 5ce277ed112cb7d99a86b3bc68bde708f7a76061 | |
parent | de0dc006a524f335bc99f354bb8bc91258aad32d (diff) |
Fix long SNI lengths in test/handshake_helper.c
If the server_name extension is long enough to require two bytes to
hold the length of either field, the test suite would not decode
the length properly. Using the PACKET_ APIs would have avoided this,
but it was desired to avoid using private APIs in this part of the
test suite, to keep ourselves honest.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4318)
-rw-r--r-- | test/handshake_helper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/handshake_helper.c b/test/handshake_helper.c index 4ec3867fe3..dc020d9027 100644 --- a/test/handshake_helper.c +++ b/test/handshake_helper.c @@ -153,7 +153,7 @@ static int early_select_server_ctx(SSL *s, void *arg, int ignore) remaining <= 2) return 0; /* Extract the length of the supplied list of names. */ - len = (*(p++) << 1); + len = (*(p++) << 8); len += *(p++); if (len + 2 != remaining) return 0; @@ -168,7 +168,7 @@ static int early_select_server_ctx(SSL *s, void *arg, int ignore) /* Now we can finally pull out the byte array with the actual hostname. */ if (remaining <= 2) return 0; - len = (*(p++) << 1); + len = (*(p++) << 8); len += *(p++); if (len + 2 > remaining) return 0; |