From: JINMEI Tatuya Date: Wed, 25 Jan 2012 22:52:22 +0000 (-0800) Subject: [1614] don't use masterLoad() for bad RRSIG data with mixed cover types; X-Git-Tag: trac2351_base~278^2~6^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=af9d2a8ef57a42c6a00ba0045ad0c8d558d61672;p=thirdparty%2Fkea.git [1614] don't use masterLoad() for bad RRSIG data with mixed cover types; the change introduced in this branch breaks the assumption of the callback function used in the test code. --- diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc index 00587a816d..6c1f8376dc 100644 --- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc +++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc @@ -1269,9 +1269,14 @@ TEST_F(InMemoryZoneFinderTest, addbadRRsig) { // RRSIG with mixed covered types zone_finder_.add(rr_a_); // make sure the covered name exists - EXPECT_THROW(zone_finder_.add(textToRRset(string(rrsig_a_txt) + - string(rrsig_ns_txt))), - InMemoryZoneFinder::AddError); + // textToRRset() doesn't work as intended for this pathological case, + // so we need to construct the RRset by hand. + RRsetPtr rrset(new RRset(origin_, class_, RRType::RRSIG(), RRTTL(300))); + rrset->addRdata(generic::RRSIG("A 5 3 3600 20000101000000 20000201000000 " + "12345 example.org. FAKEFAKEFAKE")); + rrset->addRdata(generic::RRSIG("NS 5 3 3600 20000101000000 20000201000000 " + "54321 example.org. FAKEFAKEFAKEFAKE")); + EXPECT_THROW(zone_finder_.add(rrset), InMemoryZoneFinder::AddError); // An attempt of overriding an existing RRSIG. The current implementation // prohibits that.