From: Denys Vlasenko Date: Fri, 3 Feb 2017 17:19:59 +0000 (+0100) Subject: wget/tls: session_id of zero length is ok (arxiv.org responds with such) X-Git-Tag: 1_27_0~131 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5b05d9db29843144b2ed620ca437d6a3bacc3816;p=oweals%2Fbusybox.git wget/tls: session_id of zero length is ok (arxiv.org responds with such) Signed-off-by: Denys Vlasenko --- diff --git a/networking/tls.c b/networking/tls.c index 335324568..4e9187d4f 100644 --- a/networking/tls.c +++ b/networking/tls.c @@ -1312,7 +1312,7 @@ static void get_server_hello(tls_state_t *tls) unsigned cipher; int len, len24; - len = tls_xread_handshake_block(tls, 74); + len = tls_xread_handshake_block(tls, 74 - 32); hp = (void*)tls->inbuf; // 74 bytes: @@ -1332,7 +1332,7 @@ static void get_server_hello(tls_state_t *tls) len24 = hp->len24_lo; if (hp->session_id_len != 32) { if (hp->session_id_len != 0) - tls_error_die(tls); + bad_record_die(tls, "'server hello'", len); // session_id_len == 0: no session id // "The server @@ -1347,7 +1347,7 @@ static void get_server_hello(tls_state_t *tls) // || cipherid[1] != (CIPHER_ID & 0xff) // || cipherid[2] != 0 /* comprtype */ ) { - tls_error_die(tls); + bad_record_die(tls, "'server hello'", len); } dbg("<< SERVER_HELLO\n");