From: Mukund Sivaraman Date: Mon, 10 Sep 2012 01:58:37 +0000 (+0530) Subject: [2108] Check that loading a zone containing NSEC3 names with invalid number of labels... X-Git-Tag: trac2351_base~70^2~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=41eff487aee5315bdb63b805d1e3e9efe13118f4;p=thirdparty%2Fkea.git [2108] Check that loading a zone containing NSEC3 names with invalid number of labels throws --- diff --git a/src/lib/datasrc/memory/tests/memory_client_unittest.cc b/src/lib/datasrc/memory/tests/memory_client_unittest.cc index 2bcb3f7706..032b9654a4 100644 --- a/src/lib/datasrc/memory/tests/memory_client_unittest.cc +++ b/src/lib/datasrc/memory/tests/memory_client_unittest.cc @@ -317,6 +317,24 @@ TEST_F(MemoryClientTest, loadWildcardNSEC3Throws) { // Teardown checks for memory segment leaks } +TEST_F(MemoryClientTest, loadNSEC3WithFewerLabelsThrows) { + // NSEC3 names with labels != (origin_labels + 1) should throw + EXPECT_THROW(client_->load(Name("example.org"), + TEST_DATA_DIR + "/example.org-nsec3-fewer-labels.zone"), + InMemoryClient::AddError); + // Teardown checks for memory segment leaks +} + +TEST_F(MemoryClientTest, loadNSEC3WithMoreLabelsThrows) { + // NSEC3 names with labels != (origin_labels + 1) should throw + EXPECT_THROW(client_->load(Name("example.org"), + TEST_DATA_DIR + "/example.org-nsec3-more-labels.zone"), + InMemoryClient::AddError); + // Teardown checks for memory segment leaks +} + TEST_F(MemoryClientTest, loadRRSIGFollowsNothing) { EXPECT_THROW(client_->load(Name("example.org"), TEST_DATA_DIR diff --git a/src/lib/datasrc/memory/tests/testdata/Makefile.am b/src/lib/datasrc/memory/tests/testdata/Makefile.am index 02a23e1eb7..721448a416 100644 --- a/src/lib/datasrc/memory/tests/testdata/Makefile.am +++ b/src/lib/datasrc/memory/tests/testdata/Makefile.am @@ -21,3 +21,5 @@ EXTRA_DIST += example.org-out-of-zone.zone EXTRA_DIST += example.org-wildcard-ns.zone EXTRA_DIST += example.org-wildcard-dname.zone EXTRA_DIST += example.org-wildcard-nsec3.zone +EXTRA_DIST += example.org-nsec3-fewer-labels.zone +EXTRA_DIST += example.org-nsec3-more-labels.zone diff --git a/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-fewer-labels.zone b/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-fewer-labels.zone new file mode 100644 index 0000000000..0221269a9b --- /dev/null +++ b/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-fewer-labels.zone @@ -0,0 +1,3 @@ +;; NSEC3 names with labels != (origin_labels + 1) +example.org. 86400 IN SOA ns.example.org. ns.example.org. 2012091001 7200 3600 2592000 1200 +example.org. 1200 IN NSEC3 1 0 10 AABBCCDD RKOF8QMFRB5F2V9EJHFBVB2JPVSA0DJD A RRSIG diff --git a/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-more-labels.zone b/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-more-labels.zone new file mode 100644 index 0000000000..efebcfbf6d --- /dev/null +++ b/src/lib/datasrc/memory/tests/testdata/example.org-nsec3-more-labels.zone @@ -0,0 +1,3 @@ +;; NSEC3 names with labels != (origin_labels + 1) +example.org. 86400 IN SOA ns.example.org. ns.example.org. 2012091002 7200 3600 2592000 1200 +a.b.example.org. 1200 IN NSEC3 1 0 10 AABBCCDD RKOF8QMFRB5F2V9EJHFBVB2JPVSA0DJD A RRSIG