From: Matt Caswell Date: Wed, 2 Jun 2021 16:19:23 +0000 (+0100) Subject: Only call dtls1_start_timer() once X-Git-Tag: openssl-3.0.0-beta1~214 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f570d33b02d824e2a3f676f718c4692572f45333;p=thirdparty%2Fopenssl.git 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 (Merged from https://github.com/openssl/openssl/pull/15595) --- diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c index f9ad4ed684a..a986252866b 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 b222fc6a2d5..09413a44fa5 100644 --- a/ssl/ssl_local.h +++ b/ssl/ssl_local.h @@ -2567,7 +2567,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);