summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-06-02 17:19:23 +0100
committerPauli <pauli@openssl.org>2021-06-04 11:07:13 +1000
commitbfcdfdee50b0adb9a6e448f07fd8f1c87c919cda (patch)
treebdd812c5f8c088954a984676c6b1f6d52de6ae37 /ssl
parent5478387c14e0c22a525e2ec5ed37f6ffad4b7c59 (diff)
Only call dtls1_start_timer() once
The function dtls1_handle_timeout() calls dtls1_double_timeout() which was calling dtls1_start_timer(). However dtls1_start_timer() is also called directly by dtls1_handle_timeout(). We only need to start the timer once. Fixes #15561 Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15595) (cherry picked from commit f570d33b02d824e2a3f676f718c4692572f45333)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/d1_lib.c3
-rw-r--r--ssl/ssl_local.h1
2 files changed, 1 insertions, 3 deletions
diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c
index afbf015216..05b85c1078 100644
--- a/ssl/d1_lib.c
+++ b/ssl/d1_lib.c
@@ -342,12 +342,11 @@ int dtls1_is_timer_expired(SSL *s)
return 1;
}
-void dtls1_double_timeout(SSL *s)
+static void dtls1_double_timeout(SSL *s)
{
s->d1->timeout_duration_us *= 2;
if (s->d1->timeout_duration_us > 60000000)
s->d1->timeout_duration_us = 60000000;
- dtls1_start_timer(s);
}
void dtls1_stop_timer(SSL *s)
diff --git a/ssl/ssl_local.h b/ssl/ssl_local.h
index 8c3542a542..a357d4d950 100644
--- a/ssl/ssl_local.h
+++ b/ssl/ssl_local.h
@@ -2426,7 +2426,6 @@ __owur int dtls1_handle_timeout(SSL *s);
void dtls1_start_timer(SSL *s);
void dtls1_stop_timer(SSL *s);
__owur int dtls1_is_timer_expired(SSL *s);
-void dtls1_double_timeout(SSL *s);
__owur int dtls_raw_hello_verify_request(WPACKET *pkt, unsigned char *cookie,
size_t cookie_len);
__owur size_t dtls1_min_mtu(SSL *s);