[svn] commit: r1100 - in /trunk/src/lib/dns/cpp: rdata/generic/nsec_47.cc tests/rdata_nsec_unittest.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Mar 3 22:57:21 UTC 2010
Author: jinmei
Date: Wed Mar 3 22:57:21 2010
New Revision: 1100
Log:
- added test case triggering a crash (currently commented out)
- added comments on the vulnerable part of the implementation
Modified:
trunk/src/lib/dns/cpp/rdata/generic/nsec_47.cc
trunk/src/lib/dns/cpp/tests/rdata_nsec_unittest.cc
Modified: trunk/src/lib/dns/cpp/rdata/generic/nsec_47.cc
==============================================================================
--- trunk/src/lib/dns/cpp/rdata/generic/nsec_47.cc (original)
+++ trunk/src/lib/dns/cpp/rdata/generic/nsec_47.cc Wed Mar 3 22:57:21 2010
@@ -98,6 +98,8 @@
}
rdata_len -= (buffer.getPosition() - pos);
+ // FIXIT: we cannot naively copy the data because the bitmaps have
+ // semantics and other part of this class assumes they are valid.
vector<uint8_t> typebits(rdata_len);
buffer.readData(&typebits[0], rdata_len);
Modified: trunk/src/lib/dns/cpp/tests/rdata_nsec_unittest.cc
==============================================================================
--- trunk/src/lib/dns/cpp/tests/rdata_nsec_unittest.cc (original)
+++ trunk/src/lib/dns/cpp/tests/rdata_nsec_unittest.cc Wed Mar 3 22:57:21 2010
@@ -58,13 +58,17 @@
{
const generic::NSEC rdata_nsec(nsec_txt);
EXPECT_EQ(0, rdata_nsec.compare(
- *rdataFactoryFromFile(RRType("NSEC"), RRClass("IN"),
+ *rdataFactoryFromFile(RRType::NSEC(), RRClass::IN(),
"testdata/rdata_nsec_fromWire1")));
// Too short RDLENGTH
- EXPECT_THROW(rdataFactoryFromFile(RRType("NSEC"), RRClass("IN"),
+ EXPECT_THROW(rdataFactoryFromFile(RRType::NSEC(), RRClass::IN(),
"testdata/rdata_nsec_fromWire2"),
InvalidRdataLength);
+
+ // This should be rejected
+ //rdataFactoryFromFile(RRType::NSEC(), RRClass::IN(),
+ // "testdata/rdata_nsec_fromWire3")->toText();
}
TEST_F(Rdata_NSEC_Test, toWireRenderer_NSEC)
More information about the bind10-changes
mailing list