tls-sni: fix alignment issues

pull/2073/head
Mats Klepsland 10 years ago
parent 8dc477f85a
commit a422ae9f3c

@ -167,7 +167,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input,
goto end; goto end;
/* skip cipher suites */ /* 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 += 2;
input += cipher_suites_length; input += cipher_suites_length;
@ -183,7 +183,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input,
if (!(HAS_SPACE(2))) if (!(HAS_SPACE(2)))
goto end; goto end;
uint16_t extensions_len = ntohs(*(uint16_t *)input); uint16_t extensions_len = input[0] << 8 | input[1];
input += 2; input += 2;
uint16_t processed_len = 0; uint16_t processed_len = 0;
@ -192,16 +192,15 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input,
if (!(HAS_SPACE(2))) if (!(HAS_SPACE(2)))
goto end; goto end;
uint16_t ext_type = ntohs(*(uint16_t *)input); uint16_t ext_type = input[0] << 8 | input[1];
input += 2; input += 2;
if (!(HAS_SPACE(2))) if (!(HAS_SPACE(2)))
goto end; goto end;
uint16_t ext_len = ntohs(*(uint16_t *)input); uint16_t ext_len = input[0] << 8 | input[1];
input += 2; input += 2;
switch (ext_type) { switch (ext_type) {
case SSL_EXTENSION_SNI: case SSL_EXTENSION_SNI:
{ {
@ -234,7 +233,7 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, uint8_t *input,
if (!(HAS_SPACE(2))) if (!(HAS_SPACE(2)))
goto end; goto end;
uint16_t sni_len = ntohs(*(uint16_t *)input); uint16_t sni_len = input[0] << 8 | input[1];
input += 2; input += 2;
if (!(HAS_SPACE(sni_len))) if (!(HAS_SPACE(sni_len)))

Loading…
Cancel
Save