]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix CVE-2026-44621, Libunbound applications configured with
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2026 08:11:26 +0000 (10:11 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2026 08:11:26 +0000 (10:11 +0200)
  'unwanted-reply-threshold' could eventually be abruptly
  terminated. Thanks to Qifan Zhang, Palo Alto Networks, for the
  report.

daemon/worker.c
dnstap/unbound-dnstap-socket.c
smallapp/worker_cb.c
testcode/doqclient.c
util/fptr_wlist.c

index b4e50b3452541135f4a7ac085d7897304614bbc5..1d61f87338f5d8bee0c69d02ed40104ed44b3093 100644 (file)
@@ -2646,6 +2646,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode),
        log_assert(0);
 }
 
+void libworker_alloc_cleanup(void* ATTR_UNUSED(arg))
+{
+       log_assert(0);
+}
+
 int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b))
 {
        log_assert(0);
index 90b0f6003ff6416bcbc5406166191d218d454966..2bf017430fe0e956e1c61b51968055e8eeb92e9a 100644 (file)
@@ -1735,6 +1735,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode),
        log_assert(0);
 }
 
+void libworker_alloc_cleanup(void* ATTR_UNUSED(arg))
+{
+       log_assert(0);
+}
+
 int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b))
 {
        log_assert(0);
index 92ebe386d2697d52806d89534660f676fc8f2c00..876c7db4e439e26e66befb628bd83f33e8fbdf14 100644 (file)
@@ -128,6 +128,12 @@ worker_alloc_cleanup(void* ATTR_UNUSED(arg))
        log_assert(0);
 }
 
+void
+libworker_alloc_cleanup(void* ATTR_UNUSED(arg))
+{
+       log_assert(0);
+}
+
 struct outbound_entry* libworker_send_query(
        struct query_info* ATTR_UNUSED(qinfo), uint16_t ATTR_UNUSED(flags),
        int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec),
index 8a34ca31b122da33da16c2707f77348fb4dee881..ce4d3417d26b0ff5327139de83f7803ae0cd73aa 100644 (file)
@@ -2671,6 +2671,11 @@ void libworker_event_done_cb(void* ATTR_UNUSED(arg), int ATTR_UNUSED(rcode),
        log_assert(0);
 }
 
+void libworker_alloc_cleanup(void* ATTR_UNUSED(arg))
+{
+       log_assert(0);
+}
+
 int context_query_cmp(const void* ATTR_UNUSED(a), const void* ATTR_UNUSED(b))
 {
        log_assert(0);
index a451340650ab98cb58350bb0f5828b414ea02dd4..5edd8adf270aab9f53aabeaf0bec696a5451e5a0 100644 (file)
@@ -610,6 +610,7 @@ int
 fptr_whitelist_alloc_cleanup(void (*fptr)(void*))
 {
        if(fptr == &worker_alloc_cleanup) return 1;
+       else if(fptr == &libworker_alloc_cleanup) return 1;
        return 0;
 }