]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Properly free up enqueued netievents in nm_destroy()
authorOndřej Surý <ondrej@isc.org>
Wed, 23 Feb 2022 21:04:05 +0000 (22:04 +0100)
committerOndřej Surý <ondrej@isc.org>
Wed, 23 Feb 2022 21:51:12 +0000 (22:51 +0100)
When the isc_netmgr is being destroyed, the normal and priority queues
should be dequeued and netievents properly freed.  This wasn't the case.

lib/isc/netmgr/netmgr.c

index 4b4871de9c733c7750f8ed4a4f9734d0900bcead..0e6c37fd7da19ec610b44e98898adbe1a005c851 100644 (file)
@@ -372,14 +372,14 @@ nm_destroy(isc_nm_t **mgr0) {
 
                /* Empty the async event queues */
                while ((ievent = DEQUEUE_PRIORITY_NETIEVENT(worker)) != NULL) {
-                       isc_mem_put(mgr->mctx, ievent, sizeof(*ievent));
+                       isc__nm_put_netievent(mgr, ievent);
                }
 
                INSIST(DEQUEUE_PRIVILEGED_NETIEVENT(worker) == NULL);
                INSIST(DEQUEUE_TASK_NETIEVENT(worker) == NULL);
 
-               while ((ievent = DEQUEUE_PRIORITY_NETIEVENT(worker)) != NULL) {
-                       isc_mem_put(mgr->mctx, ievent, sizeof(*ievent));
+               while ((ievent = DEQUEUE_NORMAL_NETIEVENT(worker)) != NULL) {
+                       isc__nm_put_netievent(mgr, ievent);
                }
                isc_condition_destroy(&worker->cond_prio);
                isc_mutex_destroy(&worker->lock);