From: Mats Klepsland Date: Thu, 12 May 2016 09:54:05 +0000 (+0200) Subject: tls-sni: fix alignment issues X-Git-Tag: suricata-3.1RC1~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2073%2Fhead;p=thirdparty%2Fsuricata.git tls-sni: fix alignment issues --- 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)))