From a422ae9f3c0cc029f7d4982652f8cb08a9c2d8ab Mon Sep 17 00:00:00 2001 From: Mats Klepsland Date: Thu, 12 May 2016 11:54:05 +0200 Subject: [PATCH] tls-sni: fix alignment issues --- src/app-layer-ssl.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/app-layer-ssl.c b/src/app-layer-ssl.c index 44b4f57929..952663f9b0 100644 --- a/src/app-layer-ssl.c +++ b/src/app-layer-ssl.c @@ -167,7 +167,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input, goto end; /* skip cipher suites */ - uint16_t cipher_suites_length = ntohs(*(uint16_t *)input); + uint16_t cipher_suites_length = input[0] << 8 | input[1]; input += 2; input += cipher_suites_length; @@ -183,7 +183,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input, if (!(HAS_SPACE(2))) goto end; - uint16_t extensions_len = ntohs(*(uint16_t *)input); + uint16_t extensions_len = input[0] << 8 | input[1]; input += 2; uint16_t processed_len = 0; @@ -192,16 +192,15 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input, if (!(HAS_SPACE(2))) goto end; - uint16_t ext_type = ntohs(*(uint16_t *)input); + uint16_t ext_type = input[0] << 8 | input[1]; input += 2; if (!(HAS_SPACE(2))) goto end; - uint16_t ext_len = ntohs(*(uint16_t *)input); + uint16_t ext_len = input[0] << 8 | input[1]; input += 2; - switch (ext_type) { case SSL_EXTENSION_SNI: { @@ -234,7 +233,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input, if (!(HAS_SPACE(2))) goto end; - uint16_t sni_len = ntohs(*(uint16_t *)input); + uint16_t sni_len = input[0] << 8 | input[1]; input += 2; if (!(HAS_SPACE(sni_len))) -- 2.47.2