Reset s->tlsext_ticket_expected in ssl_scan_serverhello_tlsext.

This ensures that it's zeroed even if the SSL object is reused
(as in ssltest.c). It also ensures that it applies to DTLS, too.

Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit a06cd5d056)
This commit is contained in:
Emilia Kasper 2014-11-19 15:42:43 +01:00
parent 5891c226d8
commit ce5f32cfa7
2 changed files with 1 additions and 8 deletions

View File

@ -226,14 +226,6 @@ int ssl3_connect(SSL *s)
s->renegotiate=1; s->renegotiate=1;
s->state=SSL_ST_CONNECT; s->state=SSL_ST_CONNECT;
s->ctx->stats.sess_connect_renegotiate++; s->ctx->stats.sess_connect_renegotiate++;
#ifndef OPENSSL_NO_TLSEXT
/*
* If renegotiating, the server may choose to not issue
* a new ticket, so reset the flag. It will be set to
* the right value when parsing ServerHello extensions.
*/
s->tlsext_ticket_expected = 0;
#endif
/* break */ /* break */
case SSL_ST_BEFORE: case SSL_ST_BEFORE:
case SSL_ST_CONNECT: case SSL_ST_CONNECT:

View File

@ -2560,6 +2560,7 @@ static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char
#ifndef OPENSSL_NO_NEXTPROTONEG #ifndef OPENSSL_NO_NEXTPROTONEG
s->s3->next_proto_neg_seen = 0; s->s3->next_proto_neg_seen = 0;
#endif #endif
s->tlsext_ticket_expected = 0;
if (s->s3->alpn_selected) if (s->s3->alpn_selected)
{ {