From: Matt Caswell Date: Sat, 23 May 2015 20:05:19 +0000 (+0100) Subject: Set first_packet for TLS clients X-Git-Tag: OpenSSL_1_1_0-pre1~1087 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=81fc390fd96ad9fae21cda919513fb696cd24028;p=oweals%2Fopenssl.git Set first_packet for TLS clients Version negotiation was broken (one of the late changes in the review process broke it). The problem is that TLS clients do not set first_packet, whereas TLS/DTLS servers and DTLS clients do. The simple fix is to set first_packet for TLS clients too. Reviewed-by: Kurt Roeckx --- diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c index ace0838106..f70dce4b0d 100644 --- a/ssl/s3_clnt.c +++ b/ssl/s3_clnt.c @@ -947,8 +947,7 @@ int ssl3_get_server_hello(SSL *s) * Hello verify request and/or server hello version may not match so set * first packet if we're negotiating version. */ - if (SSL_IS_DTLS(s)) - s->first_packet = 1; + s->first_packet = 1; n = s->method->ssl_get_message(s, SSL3_ST_CR_SRVR_HELLO_A, @@ -957,8 +956,8 @@ int ssl3_get_server_hello(SSL *s) if (!ok) return ((int)n); + s->first_packet = 0; if (SSL_IS_DTLS(s)) { - s->first_packet = 0; if (s->s3->tmp.message_type == DTLS1_MT_HELLO_VERIFY_REQUEST) { if (s->d1->send_cookie == 0) { s->s3->tmp.reuse_message = 1;