Commit 0fbf8b9c authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

PR: 2748

Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>

Fix possible DTLS timer deadlock.
parent d895f7f0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,6 @@ int dtls1_connect(SSL *s)
			if (ret <= 0) goto end;
			else
				{
				dtls1_stop_timer(s);
				if (s->hit)
					{
#ifndef OPENSSL_NO_SCTP
@@ -441,6 +440,7 @@ int dtls1_connect(SSL *s)
		case SSL3_ST_CR_SRVR_DONE_B:
			ret=ssl3_get_server_done(s);
			if (ret <= 0) goto end;
			dtls1_stop_timer(s);
			if (s->s3->tmp.cert_req)
				s->s3->tmp.next_state=SSL3_ST_CW_CERT_A;
			else
+3 −4
Original line number Diff line number Diff line
@@ -591,15 +591,16 @@ int dtls1_accept(SSL *s)
			ret = ssl3_check_client_hello(s);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);
			if (ret == 2)
				{
				dtls1_stop_timer(s);
				s->state = SSL3_ST_SR_CLNT_HELLO_C;
				}
			else {
				/* could be sent for a DH cert, even if we
				 * have not asked for it :-) */
				ret=ssl3_get_client_certificate(s);
				if (ret <= 0) goto end;
				dtls1_stop_timer(s);
				s->init_num=0;
				s->state=SSL3_ST_SR_KEY_EXCH_A;
			}
@@ -609,7 +610,6 @@ int dtls1_accept(SSL *s)
		case SSL3_ST_SR_KEY_EXCH_B:
			ret=ssl3_get_client_key_exchange(s);
			if (ret <= 0) goto end;
			dtls1_stop_timer(s);
#ifndef OPENSSL_NO_SCTP
			/* Add new shared key for SCTP-Auth,
			 * will be ignored if no SCTP used.
@@ -661,7 +661,6 @@ int dtls1_accept(SSL *s)
			/* we should decide if we expected this one */
			ret=ssl3_get_cert_verify(s);
			if (ret <= 0) goto end;
			dtls1_stop_timer(s);
#ifndef OPENSSL_NO_SCTP
			if (BIO_dgram_is_sctp(SSL_get_wbio(s)) &&
			    state == SSL_ST_RENEGOTIATE)