]> git.ipfire.org Git - thirdparty/pdns.git/log
thirdparty/pdns.git
6 hours agoMerge pull request #17804 from Habbie/new-in-51-not-52 master
Peter van Dijk [Wed, 29 Jul 2026 14:09:17 +0000 (16:09 +0200)] 
Merge pull request #17804 from Habbie/new-in-51-not-52

auth settings docs: fix "added-in" version numbers

13 hours agoMerge pull request #17808 from ersingundem/dnsdist-fix-web-dashboard-drops
Miod Vallat [Wed, 29 Jul 2026 07:39:29 +0000 (09:39 +0200)] 
Merge pull request #17808 from ersingundem/dnsdist-fix-web-dashboard-drops

dnsdist: Fix drops in the web dashboard

14 hours agoMerge pull request #17770 from miodvallat/unknotted
Miod Vallat [Wed, 29 Jul 2026 06:51:35 +0000 (08:51 +0200)] 
Merge pull request #17770 from miodvallat/unknotted

auth: safer error handling in bind parser

14 hours agoMerge pull request #17771 from miodvallat/retry_ignore
Miod Vallat [Wed, 29 Jul 2026 06:50:58 +0000 (08:50 +0200)] 
Merge pull request #17771 from miodvallat/retry_ignore

remove objectionable abort() calls

14 hours agoMerge pull request #17778 from miodvallat/nonrandom_api_axfr
Miod Vallat [Wed, 29 Jul 2026 06:50:23 +0000 (08:50 +0200)] 
Merge pull request #17778 from miodvallat/nonrandom_api_axfr

auth api: allow a primary server address to be passed to the axfr-retrieve endpoint

14 hours agoMerge pull request #17787 from miodvallat/would_you_like_records_with_that
Miod Vallat [Wed, 29 Jul 2026 06:49:45 +0000 (08:49 +0200)] 
Merge pull request #17787 from miodvallat/would_you_like_records_with_that

auth: yet another lmdb buglet

26 hours agodnsdist: Fix drops in the web dashboard 17808/head
Ersin Gündem [Tue, 28 Jul 2026 18:15:23 +0000 (21:15 +0300)] 
dnsdist: Fix drops in the web dashboard

Signed-off-by: Ersin Gündem <ersingundem@gmail.com>
30 hours agoMerge pull request #17802 from rgacogne/ddist-nghttp2-in-set-last-io-blocked
Remi Gacogne [Tue, 28 Jul 2026 14:45:56 +0000 (16:45 +0200)] 
Merge pull request #17802 from rgacogne/ddist-nghttp2-in-set-last-io-blocked

dnsdist: Properly set the "last IO blocked" flag from incoming DoH

30 hours agoMerge pull request #17801 from rgacogne/ddist-modernize-nghttp2-code
Remi Gacogne [Tue, 28 Jul 2026 14:29:12 +0000 (16:29 +0200)] 
Merge pull request #17801 from rgacogne/ddist-modernize-nghttp2-code

dnsdist: Modernize our `nghttp2`-related code

30 hours agonaptr-additional-processing is coming to 5.1.4 17804/head
Peter van Dijk [Tue, 28 Jul 2026 14:16:47 +0000 (16:16 +0200)] 
naptr-additional-processing is coming to 5.1.4

30 hours agodefault-soa-edit-api is new in 5.1, not 5.2
Peter van Dijk [Tue, 28 Jul 2026 14:15:46 +0000 (16:15 +0200)] 
default-soa-edit-api is new in 5.1, not 5.2

31 hours agodnsdist: USe the short `std::array` version suggested by Miod (thanks!) 17801/head
Remi Gacogne [Tue, 28 Jul 2026 13:51:28 +0000 (15:51 +0200)] 
dnsdist: USe the short `std::array` version suggested by Miod (thanks!)

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
31 hours agodnsdist: Properly set the "last IO blocked" flag from incoming DoH 17802/head
Remi Gacogne [Tue, 28 Jul 2026 13:48:15 +0000 (15:48 +0200)] 
dnsdist: Properly set the "last IO blocked" flag from incoming DoH

It is used in at least one method inherited from `IncomingTCPConnectionState`.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
31 hours agodnsdist: Modernize our `nghttp2`-related code
Remi Gacogne [Tue, 28 Jul 2026 12:05:42 +0000 (14:05 +0200)] 
dnsdist: Modernize our `nghttp2`-related code

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
32 hours agoMerge pull request #17799 from Habbie/dnsdist-eol-word
Remi Gacogne [Tue, 28 Jul 2026 12:43:55 +0000 (14:43 +0200)] 
Merge pull request #17799 from Habbie/dnsdist-eol-word

add "DNSdist" word after "PowerDNS"

34 hours agoMerge pull request #17798 from rgacogne/ddist-nghttp2-error-callback
Remi Gacogne [Tue, 28 Jul 2026 11:01:12 +0000 (13:01 +0200)] 
Merge pull request #17798 from rgacogne/ddist-nghttp2-error-callback

dnsdist: `nghttp2`'s error callback is "solely for debugging purpose"

34 hours agoadd "DNSdist" word after "PowerDNS" 17799/head
Peter van Dijk [Tue, 28 Jul 2026 10:37:36 +0000 (12:37 +0200)] 
add "DNSdist" word after "PowerDNS"

Signed-off-by: Peter van Dijk <peter.van.dijk@powerdns.com>
34 hours agodnsdist: `nghttp2`'s error callback is "solely for debugging purpose" 17798/head
Remi Gacogne [Tue, 28 Jul 2026 10:22:46 +0000 (12:22 +0200)] 
dnsdist: `nghttp2`'s error callback is "solely for debugging purpose"

So there is no need to terminate the stream/session ourselves.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
34 hours agoMerge pull request #17797 from rgacogne/dnsname-too-long
Remi Gacogne [Tue, 28 Jul 2026 10:09:43 +0000 (12:09 +0200)] 
Merge pull request #17797 from rgacogne/dnsname-too-long

dnsname: Account for the existing content when parsing labels

36 hours agotest-dnsname_cc: clang-tidy fixes 17797/head
Remi Gacogne [Tue, 28 Jul 2026 08:17:07 +0000 (10:17 +0200)] 
test-dnsname_cc: clang-tidy fixes

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
37 hours agoMerge pull request #17751 from Support-itecz/lmdb-key-length-check
Remi Gacogne [Tue, 28 Jul 2026 07:25:05 +0000 (09:25 +0200)] 
Merge pull request #17751 from Support-itecz/lmdb-key-length-check

lmdbbackend: bounds-check compoundOrdername key decoders

37 hours agodnsname: Don't mix additions and subtractions when possible
Remi Gacogne [Tue, 21 Jul 2026 07:31:33 +0000 (09:31 +0200)] 
dnsname: Don't mix additions and subtractions when possible

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
37 hours agodnsname: Account for the existing content when parsing labels
Remi Gacogne [Fri, 17 Jul 2026 14:45:11 +0000 (16:45 +0200)] 
dnsname: Account for the existing content when parsing labels

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 days agoMerge pull request #17790 from rgacogne/dnsname-256
Remi Gacogne [Mon, 27 Jul 2026 14:20:39 +0000 (16:20 +0200)] 
Merge pull request #17790 from rgacogne/dnsname-256

dnsname: Properly reject 256-bytes wire-encoded DNS names

2 days agoMerge pull request #17789 from omoerbeek/coverity-20260723
Otto Moerbeek [Mon, 27 Jul 2026 14:14:30 +0000 (16:14 +0200)] 
Merge pull request #17789 from omoerbeek/coverity-20260723

Two coverity fixes

2 days agoMerge pull request #17791 from rgacogne/ddist-coveiryy-20260727
Remi Gacogne [Mon, 27 Jul 2026 14:07:17 +0000 (16:07 +0200)] 
Merge pull request #17791 from rgacogne/ddist-coveiryy-20260727

dnsdist: Fix a missed performance optimization reported by Coverity

2 days agoMerge pull request #17360 from omoerbeek/rec-warmcache
Otto Moerbeek [Mon, 27 Jul 2026 14:04:57 +0000 (16:04 +0200)] 
Merge pull request #17360 from omoerbeek/rec-warmcache

rec: keep cache warm for a list of names

2 days agotest-dnsname_cc: Fix coverity warning 17790/head
Remi Gacogne [Mon, 27 Jul 2026 13:41:33 +0000 (15:41 +0200)] 
test-dnsname_cc: Fix coverity warning

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 days agodnsdist: Fix a missed performance optimization reported by Coverity 17791/head
Remi Gacogne [Mon, 27 Jul 2026 13:07:18 +0000 (15:07 +0200)] 
dnsdist: Fix a missed performance optimization reported by Coverity

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
2 days agoHandle review comments fomr @rgacogne 17360/head
Otto Moerbeek [Mon, 27 Jul 2026 11:58:07 +0000 (13:58 +0200)] 
Handle review comments fomr @rgacogne

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoMerge pull request #17785 from omoerbeek/rec-warn-CARGO_USE_DEV
Otto Moerbeek [Mon, 27 Jul 2026 10:36:51 +0000 (12:36 +0200)] 
Merge pull request #17785 from omoerbeek/rec-warn-CARGO_USE_DEV

rec: add a comment wrt using g++ with CARGO_USE_DEV=1

2 days agoMerge pull request #17786 from omoerbeek/rec-unsupported-digest-is-not
Otto Moerbeek [Mon, 27 Jul 2026 10:36:32 +0000 (12:36 +0200)] 
Merge pull request #17786 from omoerbeek/rec-unsupported-digest-is-not

rec: bandaid for disabling algo 8 also disables DS digest 2

2 days agoAdd docs
Otto Moerbeek [Wed, 10 Jun 2026 09:33:49 +0000 (11:33 +0200)] 
Add docs

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoAdd basic tests
Otto Moerbeek [Tue, 9 Jun 2026 12:58:04 +0000 (14:58 +0200)] 
Add basic tests

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoApply suggestions from code review
Otto Moerbeek [Mon, 1 Jun 2026 14:36:14 +0000 (16:36 +0200)] 
Apply suggestions from code review

Co-authored-by: Miod Vallat <miod.vallat@powerdns.com>
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoAdd conversion functions (just to be complete)
Otto Moerbeek [Wed, 13 May 2026 13:19:33 +0000 (15:19 +0200)] 
Add conversion functions (just to be complete)

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoRework logic a bit to make it more resilient against failing cases
Otto Moerbeek [Wed, 13 May 2026 11:23:51 +0000 (13:23 +0200)] 
Rework logic a bit to make it more resilient against failing cases

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoMake number of task threads configurable
Otto Moerbeek [Tue, 21 Apr 2026 14:21:40 +0000 (16:21 +0200)] 
Make number of task threads configurable

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoBase of a working mechanism using a multi-index
Otto Moerbeek [Wed, 8 Apr 2026 11:19:39 +0000 (13:19 +0200)] 
Base of a working mechanism using a multi-index

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoDo the actual pin in cache work.
Otto Moerbeek [Wed, 1 Apr 2026 11:58:16 +0000 (13:58 +0200)] 
Do the actual pin in cache work.

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoAdd keepwarm to recordcache config
Otto Moerbeek [Wed, 1 Apr 2026 08:30:01 +0000 (10:30 +0200)] 
Add keepwarm to recordcache config

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoCompute root refresh period based no TTLs of actual records
Otto Moerbeek [Tue, 31 Mar 2026 14:34:53 +0000 (16:34 +0200)] 
Compute root refresh period based no TTLs of actual records

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoTie force refresh mode into syncres and tasks
Otto Moerbeek [Thu, 26 Mar 2026 14:07:14 +0000 (15:07 +0100)] 
Tie force refresh mode into syncres and tasks

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoIntroduce a "forcedRefresh" flag, which regards the entry expired if half the TTL...
Otto Moerbeek [Thu, 26 Mar 2026 12:56:27 +0000 (13:56 +0100)] 
Introduce a "forcedRefresh" flag, which regards the entry expired if half the TTL has passed

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoRefactor SyncRes constructor
Otto Moerbeek [Thu, 26 Mar 2026 12:37:24 +0000 (13:37 +0100)] 
Refactor SyncRes constructor

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoGarbage collect unused SyncRes flag
Otto Moerbeek [Thu, 26 Mar 2026 12:17:06 +0000 (13:17 +0100)] 
Garbage collect unused SyncRes flag

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoMake sure we do not leave dangling internal transactions upon error. 17787/head
Miod Vallat [Mon, 27 Jul 2026 10:09:44 +0000 (12:09 +0200)] 
Make sure we do not leave dangling internal transactions upon error.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 days agorec: bandaid for disabling algo 8 also disables DS digest 2 17786/head
Otto Moerbeek [Mon, 27 Jul 2026 09:36:28 +0000 (11:36 +0200)] 
rec: bandaid for disabling algo 8 also disables DS digest 2

Fixes #17772 in a quick and dirty way.

Proper fix should separate algo handling and digest handling, as
more than one algo can use the same digest.

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agorec: add a comment wrt using g++ with CARGO_USE_DEV=1 17785/head
Otto Moerbeek [Mon, 27 Jul 2026 09:29:35 +0000 (11:29 +0200)] 
rec: add a comment wrt using g++ with CARGO_USE_DEV=1

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
2 days agoMerge pull request #17737 from farrokhi/feature/recursor-ede-nta-33
Otto Moerbeek [Mon, 27 Jul 2026 09:11:38 +0000 (11:11 +0200)] 
Merge pull request #17737 from farrokhi/feature/recursor-ede-nta-33

Emit EDE 33 (Negative Trust Anchor) on NTA-covered responses

2 days agodnsname: Properly reject 256-bytes wire-encoded DNS names
Remi Gacogne [Thu, 16 Jul 2026 10:31:21 +0000 (12:31 +0200)] 
dnsname: Properly reject 256-bytes wire-encoded DNS names

The length check was off by one for uncompressed names.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
(cherry picked from commit 740f5ce2cee645926197115f1b97a8aa08300107)

2 days agoDo not depend upon name mangling. 17770/head
Miod Vallat [Mon, 27 Jul 2026 06:05:10 +0000 (08:05 +0200)] 
Do not depend upon name mangling.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 days agoAllow a primary server address to be passed to the axfr-retrieve endpoint. 17778/head
Miod Vallat [Fri, 24 Jul 2026 09:51:16 +0000 (11:51 +0200)] 
Allow a primary server address to be passed to the axfr-retrieve endpoint.

Fixes: #14733
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
2 days agoMerge pull request #17735 from miodvallat/o'malley's_bar
Miod Vallat [Mon, 27 Jul 2026 05:13:58 +0000 (07:13 +0200)] 
Merge pull request #17735 from miodvallat/o'malley's_bar

auth tests: preserve brain cells

2 days agoMerge pull request #17774 from miodvallat/lmdboom
Miod Vallat [Mon, 27 Jul 2026 05:13:04 +0000 (07:13 +0200)] 
Merge pull request #17774 from miodvallat/lmdboom

auth: more lmdb stability

2 days agoMerge pull request #17780 from miodvallat/sqheavy
Miod Vallat [Mon, 27 Jul 2026 05:00:31 +0000 (07:00 +0200)] 
Merge pull request #17780 from miodvallat/sqheavy

auth sqlite: prevent file descriptor leaks in some conditions

2 days agoMerge pull request #17782 from miodvallat/embarassing_lmdb_bug
Miod Vallat [Mon, 27 Jul 2026 04:59:01 +0000 (06:59 +0200)] 
Merge pull request #17782 from miodvallat/embarassing_lmdb_bug

auth: fix embarassing lmdb bug

5 days agoWrite transient domain info correctly at domain creation, if split mode. 17782/head
Miod Vallat [Fri, 24 Jul 2026 14:15:49 +0000 (16:15 +0200)] 
Write transient domain info correctly at domain creation, if split mode.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
5 days agoMerge pull request #17779 from Support-itecz/svcb-duplicate-svcparamkey
Miod Vallat [Fri, 24 Jul 2026 13:57:06 +0000 (15:57 +0200)] 
Merge pull request #17779 from Support-itecz/svcb-duplicate-svcparamkey

reject duplicate SvcParamKeys in the SVCB/HTTPS text parser

5 days agoCheck for write access to the SQLite3 database prior to opening it. 17780/head
Miod Vallat [Fri, 24 Jul 2026 10:38:11 +0000 (12:38 +0200)] 
Check for write access to the SQLite3 database prior to opening it.

This prevents older SQLite libraries to leak file descriptors in some
configurations.

Fixes: #13952
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
5 days agoreject duplicate SvcParamKeys in the SVCB/HTTPS text parser 17779/head
Itecz Solution [Fri, 24 Jul 2026 10:26:40 +0000 (15:56 +0530)] 
reject duplicate SvcParamKeys in the SVCB/HTTPS text parser

Signed-off-by: Itecz Solution <support@itecz.au>
5 days agoMerge pull request #17760 from Support-itecz/packetcache-edns-option-bound
Remi Gacogne [Fri, 24 Jul 2026 08:26:19 +0000 (10:26 +0200)] 
Merge pull request #17760 from Support-itecz/packetcache-edns-option-bound

Correct the EDNS option length bound in queryMatches

5 days agoDelint test-packetcache_hh.cc 17760/head
Remi Gacogne [Fri, 24 Jul 2026 07:23:25 +0000 (09:23 +0200)] 
Delint test-packetcache_hh.cc

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agoCorrect the EDNS option length bound in queryMatches
Itecz Solution [Wed, 22 Jul 2026 10:48:18 +0000 (16:18 +0530)] 
Correct the EDNS option length bound in queryMatches

queryMatches did not subtract the 4-byte option header that getNextEDNSOption consumes, so its length bound was looser than hashAfterQname's for the same RDATA and the two could disagree on a malformed OPT option.

Signed-off-by: Itecz Solution <support@itecz.au>
6 days agodoom-tidy 17774/head
Miod Vallat [Thu, 23 Jul 2026 14:43:25 +0000 (16:43 +0200)] 
doom-tidy

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoMake sure we won't try to mdb_txn_abort a failing mdb_txn_commit.
Miod Vallat [Thu, 23 Jul 2026 13:52:09 +0000 (15:52 +0200)] 
Make sure we won't try to mdb_txn_abort a failing mdb_txn_commit.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoMake sure lines outputting to cerr are passive.
Miod Vallat [Thu, 23 Jul 2026 13:47:35 +0000 (15:47 +0200)] 
Make sure lines outputting to cerr are passive.

(i.e. they don't invoke lmdb function).

This will make easier to replace them with structured logging or whatever
in a hypothetical future.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoBe sure never to leave pending transactions upon error.
Miod Vallat [Thu, 23 Jul 2026 13:04:55 +0000 (15:04 +0200)] 
Be sure never to leave pending transactions upon error.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoMerge pull request #17762 from omoerbeek/rec-wildcard-cname-proof-validation-bypass
Otto Moerbeek [Thu, 23 Jul 2026 11:59:43 +0000 (13:59 +0200)] 
Merge pull request #17762 from omoerbeek/rec-wildcard-cname-proof-validation-bypass

rec: Wildcard CNAME proof validation bypass

6 days agoTwo coverity fixes 17789/head
Otto Moerbeek [Thu, 23 Jul 2026 11:24:57 +0000 (13:24 +0200)] 
Two coverity fixes

I hope compilers are smart enough to see that the bottom of the function cannot be reached
(clang is happy with the missing return).

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
6 days agoMerge pull request #16932 from rgacogne/ddistrecvmmsg-from-backends
Remi Gacogne [Thu, 23 Jul 2026 11:06:28 +0000 (13:06 +0200)] 
Merge pull request #16932 from rgacogne/ddistrecvmmsg-from-backends

dnsdist: Add `recvmmsg` support for backend responses

6 days agorec: Consistenly use the CacheEntry fields 17762/head
Remi Gacogne [Mon, 29 Jun 2026 15:10:00 +0000 (17:10 +0200)] 
rec: Consistenly use the CacheEntry fields

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agorec: Update the validation of previously inserted records when encountering a DNSSEC...
Remi Gacogne [Fri, 26 Jun 2026 14:59:36 +0000 (16:59 +0200)] 
rec: Update the validation of previously inserted records when encountering a DNSSEC validation failure

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agorec: NSEC and NSEC3 records in authority need to be validated
Remi Gacogne [Fri, 26 Jun 2026 14:58:58 +0000 (16:58 +0200)] 
rec: NSEC and NSEC3 records in authority need to be validated

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agorec: Add a unit test for Palo Alto's wildcard CNAME proof validation bypass
Remi Gacogne [Fri, 26 Jun 2026 14:57:38 +0000 (16:57 +0200)] 
rec: Add a unit test for Palo Alto's wildcard CNAME proof validation bypass

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agorec: Simplify existing unit test
Otto Moerbeek [Thu, 23 Jul 2026 10:03:18 +0000 (12:03 +0200)] 
rec: Simplify existing unit test

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
6 days agoMerge pull request #17761 from omoerbeek/rec-wildcard-rrsig-labels
Otto Moerbeek [Thu, 23 Jul 2026 09:58:43 +0000 (11:58 +0200)] 
Merge pull request #17761 from omoerbeek/rec-wildcard-rrsig-labels

rec: RRSIGs with too few labels can lead to bypass of DNSSEC wildcard validation

6 days agodnsdist: Be explicit about when the buffer might have been resized 16932/head
Remi Gacogne [Thu, 23 Jul 2026 09:52:07 +0000 (11:52 +0200)] 
dnsdist: Be explicit about when the buffer might have been resized

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
6 days agoDo not abort() if we can throw an exception instead. 17771/head
Miod Vallat [Thu, 23 Jul 2026 09:26:14 +0000 (11:26 +0200)] 
Do not abort() if we can throw an exception instead.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoDo not call abort() if we can't correctly close the database connexion.
Miod Vallat [Thu, 23 Jul 2026 09:25:54 +0000 (11:25 +0200)] 
Do not call abort() if we can't correctly close the database connexion.

This does not help anything.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoMerge pull request #17754 from miodvallat/cnaaaame
Miod Vallat [Thu, 23 Jul 2026 09:05:55 +0000 (11:05 +0200)] 
Merge pull request #17754 from miodvallat/cnaaaame

auth: add a test for #2625

6 days agoMerge pull request #17769 from omoerbeek/rec-nsec-next-out-of-zone
Otto Moerbeek [Thu, 23 Jul 2026 08:48:03 +0000 (10:48 +0200)] 
Merge pull request #17769 from omoerbeek/rec-nsec-next-out-of-zone

rec: reject NSECs whose next names are out of the zone earlier

6 days agoHandle include directives lacking semicolons in the lexer.
Miod Vallat [Thu, 23 Jul 2026 08:28:05 +0000 (10:28 +0200)] 
Handle include directives lacking semicolons in the lexer.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoAdd option nodefault.
Miod Vallat [Thu, 23 Jul 2026 08:17:52 +0000 (10:17 +0200)] 
Add option nodefault.

This disables the default behaviour of simply ECHOing unknown tokens. It
will now error with "flex scanner jammed", and we can fix the lexer.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoTurn BindParser lexer errors into proper exceptions.
Miod Vallat [Thu, 23 Jul 2026 08:12:01 +0000 (10:12 +0200)] 
Turn BindParser lexer errors into proper exceptions.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
6 days agoMerge pull request #17753 from Support-itecz/ctype-unsigned-char
Otto Moerbeek [Thu, 23 Jul 2026 07:57:11 +0000 (09:57 +0200)] 
Merge pull request #17753 from Support-itecz/ctype-unsigned-char

Do not pass signed char to ctype functions in text parsers

6 days agoMerge pull request #17768 from omoerbeek/auth-geoip-clang-warning
Otto Moerbeek [Thu, 23 Jul 2026 07:44:29 +0000 (09:44 +0200)] 
Merge pull request #17768 from omoerbeek/auth-geoip-clang-warning

Fix warning: anonymous non-C-compatible type given name for linkage purposes by alias declaration

6 days agoFix warning: anonymous non-C-compatible type given name for linkage purposes by alias... 17768/head
Otto Moerbeek [Thu, 23 Jul 2026 06:58:00 +0000 (08:58 +0200)] 
Fix warning: anonymous non-C-compatible type given name for linkage purposes by alias declaration; add a tag name here

In file included from ../pdns/../modules/geoipbackend/geoipinterface.hh:25:
../pdns/../modules/geoipbackend/geoipbackend.hh:59:25: warning: anonymous non-C-compatible type given name for linkage purposes by alias declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
   59 |   using state_t = struct
      |                         ^
      |                          state_t
../pdns/../modules/geoipbackend/geoipbackend.hh:61:5: note: type is not C-compatible due to this default member initializer
   61 |     unsigned int instance_count{0};
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../pdns/../modules/geoipbackend/geoipbackend.hh:59:9: note: type is given name 'state_t' for linkage purposes by this alias declaration
   59 |   using state_t = struct
      |         ^
1 warning generated.

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
6 days agoFix clang-tidy complaints 17753/head
Otto Moerbeek [Thu, 23 Jul 2026 06:54:01 +0000 (08:54 +0200)] 
Fix clang-tidy complaints

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
6 days agoMerge pull request #17767 from PowerDNS/omoerbeek-patch-1
Otto Moerbeek [Thu, 23 Jul 2026 04:53:23 +0000 (06:53 +0200)] 
Merge pull request #17767 from PowerDNS/omoerbeek-patch-1

Correct CVE number in title

6 days agoCorrect CVE number in title 17767/head
Otto Moerbeek [Thu, 23 Jul 2026 04:45:26 +0000 (06:45 +0200)] 
Correct CVE number in title

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
7 days agoSet default nta_extended_error to off 17737/head
Babak Farrokhi [Wed, 22 Jul 2026 13:09:57 +0000 (15:09 +0200)] 
Set default nta_extended_error to off

Signed-off-by: Babak Farrokhi <babak@farrokhi.net>
7 days agores: only attach EDE 33 to queries subject to validation
Babak Farrokhi [Thu, 16 Jul 2026 10:56:01 +0000 (12:56 +0200)] 
res: only attach EDE 33 to queries subject to validation

Fix a condition where a cache hit from record-cache copied validation
status, regardless of whether a client asked for validation or not.

Signed-off-by: Babak Farrokhi <babak@farrokhi.net>
7 days agoEmit EDE 33 (Negative Trust Anchor) on NTA-covered responses
Babak Farrokhi [Wed, 15 Jul 2026 14:49:16 +0000 (16:49 +0200)] 
Emit EDE 33 (Negative Trust Anchor) on NTA-covered responses

When a Negative Trust Anchor is in effect, attach an EDNS Extended Error
with info-code 33 to insecure answers whose queried name (or a chased
CNAME target) is covered by the NTA, giving clients an in-band signal
that an NTA applies to the name. The signal only indicates coverage, and
does not imply that the NTA caused insecurity.

Controlled by the new `dnssec.nta-extended-error` setting, enabled by
default. This is for diagnostic purposes only: the validation state and
the AD bit are left intact.

Defined in draft-farrokhi-dnsop-ede-nta ("Disclosure of Negative Trust
Anchors in DNS Responses"):
https://datatracker.ietf.org/doc/draft-farrokhi-dnsop-ede-nta/

Signed-off-by: Babak Farrokhi <babak@farrokhi.net>
7 days agoMerge pull request #17749 from miodvallat/vector_like_a_pirate
Miod Vallat [Wed, 22 Jul 2026 12:30:27 +0000 (14:30 +0200)] 
Merge pull request #17749 from miodvallat/vector_like_a_pirate

Prefer std::array to std::vector for const values

7 days agoMerge pull request #17758 from omoerbeek/rec-prep-20260722
Otto Moerbeek [Wed, 22 Jul 2026 10:10:57 +0000 (12:10 +0200)] 
Merge pull request #17758 from omoerbeek/rec-prep-20260722

rec: prep for 2026-07-22 security release

7 days agorec: prep for 2026-07-22 security release 17758/head
Otto Moerbeek [Tue, 21 Jul 2026 13:40:12 +0000 (15:40 +0200)] 
rec: prep for 2026-07-22 security release

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
7 days agoAdd a test for #2625 17754/head
Miod Vallat [Wed, 22 Jul 2026 06:13:53 +0000 (08:13 +0200)] 
Add a test for #2625

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
9 days agoDo not pass signed char to ctype functions in text parsers
Itecz Solution [Mon, 20 Jul 2026 17:52:41 +0000 (23:22 +0530)] 
Do not pass signed char to ctype functions in text parsers

Signed-off-by: Itecz Solution <support@itecz.au>
9 days agoMerge pull request #17750 from omoerbeek/ddist-fix-compilation
Otto Moerbeek [Mon, 20 Jul 2026 13:48:01 +0000 (15:48 +0200)] 
Merge pull request #17750 from omoerbeek/ddist-fix-compilation

dnsdist: fix compilation on platforms lacking quiche_conn_set_qlog_path()