From: Ondřej Surý Date: Sun, 22 Feb 2026 06:27:07 +0000 (+0100) Subject: Add system tests that imports invalid SKR file X-Git-Tag: v9.21.19~7^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a82773ea891c54a2cd703b9d5b3d01fdf33912d4;p=thirdparty%2Fbind9.git Add system tests that imports invalid SKR file Try to import invalid SKR file and observe whether the named is still alive. This test only triggers under ASAN. --- diff --git a/bin/tests/system/ksr/ns1/named.conf.j2 b/bin/tests/system/ksr/ns1/named.conf.j2 index 72830693215..baeebbf81f5 100644 --- a/bin/tests/system/ksr/ns1/named.conf.j2 +++ b/bin/tests/system/ksr/ns1/named.conf.j2 @@ -93,3 +93,17 @@ dnssec-policy "ksk-roll" { zsk lifetime unlimited algorithm @DEFAULT_ALGORITHM@; }; }; + +dnssec-policy "invalid-skr" { + offline-ksk yes; + keys { + ksk lifetime unlimited algorithm @DEFAULT_ALGORITHM@; + zsk lifetime unlimited algorithm @DEFAULT_ALGORITHM@; + }; +}; + +zone "invalid-skr.test" { + type primary; + file "invalid-skr.test.db"; + dnssec-policy "invalid-skr"; +}; diff --git a/bin/tests/system/ksr/ns1/setup.sh b/bin/tests/system/ksr/ns1/setup.sh index 2179ab251d3..e8c932b3924 100644 --- a/bin/tests/system/ksr/ns1/setup.sh +++ b/bin/tests/system/ksr/ns1/setup.sh @@ -27,3 +27,4 @@ cp template.db.in in-the-middle.test.db cp template.db.in unlimited.test.db cp template.db.in two-tone.test.db cp template.db.in ksk-roll.test.db +cp template.db.in invalid-skr.test.db diff --git a/bin/tests/system/ksr/tests_ksr.py b/bin/tests/system/ksr/tests_ksr.py index e3fbf6dfa2b..3e0925bfab3 100644 --- a/bin/tests/system/ksr/tests_ksr.py +++ b/bin/tests/system/ksr/tests_ksr.py @@ -34,6 +34,7 @@ pytestmark = pytest.mark.extra_artifacts( "past.test.*", "two-tone.test.*", "unlimited.test.*", + "invalid-skr.test.*", "ns1/K*", "ns1/_default.nzd", "ns1/_default.nzf", @@ -77,6 +78,11 @@ pytestmark = pytest.mark.extra_artifacts( "ns1/unlimited.test.db.signed", "ns1/unlimited.test.db.signed.jnl", "ns1/unlimited.test.unlimited.skr.1", + "ns1/invalid-skr.test.db", + "ns1/invalid-skr.test.db.jbk", + "ns1/invalid-skr.test.db.signed", + "ns1/invalid-skr.test.db.signed.jnl", + "ns1/invalid-skr.test.skr.1", ] ) @@ -1298,3 +1304,21 @@ def test_ksr_kskroll(ns1): isctest.kasp.check_apex(ns1, zone, ksks, zsks, offline_ksk=True) # - check subdomain isctest.kasp.check_subdomain(ns1, zone, ksks, zsks, offline_ksk=True) + + +def test_ksr_oversize(ns1): + zone = "invalid-skr.test" + n = 1 + + skr_fname = f"{zone}.skr.{n}" + token_len = 5000 + with open(skr_fname, "w", encoding="utf-8") as skr: + huge_token = "A" * token_len + skr.write(f";; SignedKeyResponse 1.0 {huge_token}\n") + + # - try importing invalid SKR file + shutil.copyfile(skr_fname, f"ns1/{skr_fname}") + ns1.rndc(f"skr -import {skr_fname} {zone}") + + # - check if named is still running + ns1.rndc("status")