From cb6591f277bd5d0f8fad5ff4426d4bde1a1659ce Mon Sep 17 00:00:00 2001 From: Artem Boldariev Date: Tue, 10 May 2022 19:44:28 +0300 Subject: [PATCH] Avoid aborting when uv_timer_start() is used on a closing socket In such a case it will return UV_EINVAL (-EINVAL), leading to aborting, as the code expects the function to succeed. (cherry picked from commit 245f7cec2ea9005a360478959e4a446c666eab75) --- lib/isc/netmgr/netmgr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c index 0661621b99..8bad215f9d 100644 --- a/lib/isc/netmgr/netmgr.c +++ b/lib/isc/netmgr/netmgr.c @@ -2077,6 +2077,10 @@ void isc__nmsocket_timer_restart(isc_nmsocket_t *sock) { REQUIRE(VALID_NMSOCK(sock)); + if (uv_is_closing((uv_handle_t *)&sock->read_timer)) { + return; + } + if (atomic_load(&sock->connecting)) { int r;