]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
netmgr: we can't uv_close(sock->timer) when in sock->timer close callback
authorWitold Kręcicki <wpk@isc.org>
Wed, 15 Jan 2020 13:53:01 +0000 (14:53 +0100)
committerWitold Kręcicki <wpk@isc.org>
Wed, 15 Jan 2020 13:56:40 +0000 (14:56 +0100)
lib/isc/netmgr/netmgr.c

index ffde1a2157a284f0f5413b3fc438b1fb021eae85..6a66bd5fdbd8fe9ca340d468243dde489e182aaf 100644 (file)
@@ -760,8 +760,11 @@ nmsocket_cleanup(isc_nmsocket_t *sock, bool dofree) {
 
        if (sock->timer_initialized) {
                sock->timer_initialized = false;
-               uv_timer_stop(&sock->timer);
-               uv_close((uv_handle_t *)&sock->timer, NULL);
+               /* We might be in timer callback */
+               if (!uv_is_closing((uv_handle_t *) &sock->timer)) {
+                       uv_timer_stop(&sock->timer);
+                       uv_close((uv_handle_t *)&sock->timer, NULL);
+               }
        }
 
        isc_astack_destroy(sock->inactivehandles);