From d35739d5168b34c2f219b6663f0d42f207ef877d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Thu, 12 Dec 2019 12:59:39 +0100 Subject: [PATCH] Add missing isc_refcount_destroy and lock the socket ISC_LISTS in destroy() --- lib/isc/unix/socket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 7b7c8fc2ba..9cff8de218 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -1832,15 +1832,17 @@ destroy(isc__socket_t **sockp) { isc__socketmgr_t *manager = sock->manager; isc__socketthread_t *thread = NULL; + isc_refcount_destroy(&sock->references); + socket_log(sock, NULL, CREATION, "destroying"); + LOCK(&sock->lock); INSIST(ISC_LIST_EMPTY(sock->connect_list)); INSIST(ISC_LIST_EMPTY(sock->accept_list)); INSIST(ISC_LIST_EMPTY(sock->recv_list)); INSIST(ISC_LIST_EMPTY(sock->send_list)); INSIST(sock->fd >= -1 && sock->fd < (int)manager->maxsocks); - LOCK(&sock->lock); if (sock->fd >= 0) { fd = sock->fd; thread = &manager->threads[sock->threadid];