BIND 10 trac2521, updated. caefbb6f9016955ad62391d799fd69886aa363b4 [2521] DHCDID RDATA cannot be empty
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon May 6 18:28:07 UTC 2013
The branch, trac2521 has been updated
via caefbb6f9016955ad62391d799fd69886aa363b4 (commit)
from 5045f86bbd1c7ffaf07c95f7c6ce4d64b1e1c467 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit caefbb6f9016955ad62391d799fd69886aa363b4
Author: Paul Selkirk <pselkirk at isc.org>
Date: Mon May 6 14:27:56 2013 -0400
[2521] DHCDID RDATA cannot be empty
-----------------------------------------------------------------------
Summary of changes:
src/lib/dns/rdata/in_1/dhcid_49.cc | 11 +++++++----
src/lib/dns/tests/rdata_dhcid_unittest.cc | 11 ++++++-----
2 files changed, 13 insertions(+), 9 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/dns/rdata/in_1/dhcid_49.cc b/src/lib/dns/rdata/in_1/dhcid_49.cc
index f8b3b85..b6b0bf5 100644
--- a/src/lib/dns/rdata/in_1/dhcid_49.cc
+++ b/src/lib/dns/rdata/in_1/dhcid_49.cc
@@ -48,10 +48,11 @@ DHCID::constructFromLexer(MasterLexer& lexer) {
}
lexer.ungetToken();
- // missing digest data is okay
- if (digest_txt.size() > 0) {
- decodeBase64(digest_txt, digest_);
+ if (digest_txt.size() == 0) {
+ isc_throw(InvalidRdataText, "Missing DHCID RDATA");
}
+
+ decodeBase64(digest_txt, digest_);
}
/// \brief Constructor from string.
@@ -89,7 +90,9 @@ DHCID::DHCID(const std::string& dhcid_str) {
/// The \c lexer should point to the beginning of valid textual representation
/// of a DHCID RDATA.
///
-/// \throw MasterLexer::LexerError General parsing error such as missing field.
+/// \throw InvalidRdataText on empty string.
+/// \throw BadValue if the text is not valid base-64.
+/// \throw MasterLexer::LexerError General parsing error.
///
/// \param lexer A \c MasterLexer object parsing a master file for the
/// RDATA to be created
diff --git a/src/lib/dns/tests/rdata_dhcid_unittest.cc b/src/lib/dns/tests/rdata_dhcid_unittest.cc
index 8494e38..e837056 100644
--- a/src/lib/dns/tests/rdata_dhcid_unittest.cc
+++ b/src/lib/dns/tests/rdata_dhcid_unittest.cc
@@ -45,8 +45,8 @@ protected:
rdata_str, rdata_dhcid, false, false);
}
- void checkFromText_InvalidLength(const string& rdata_str) {
- checkFromText<in::DHCID, InvalidRdataLength, InvalidRdataLength>(
+ void checkFromText_InvalidText(const string& rdata_str) {
+ checkFromText<in::DHCID, InvalidRdataText, InvalidRdataText>(
rdata_str, rdata_dhcid, true, true);
}
@@ -74,9 +74,6 @@ protected:
TEST_F(Rdata_DHCID_Test, fromText) {
EXPECT_EQ(dhcid_txt, rdata_dhcid.toText());
- // missing digest data is okay
- EXPECT_NO_THROW(const in::DHCID digest(""));
-
// Space in digest data is OK
checkFromText_None(
"0LIg0LvQtdGB0YMg 0YDQvtC00LjQu9Cw 0YHRjCDRkdC70L7R h9C60LA=");
@@ -95,6 +92,10 @@ TEST_F(Rdata_DHCID_Test, fromText) {
}
TEST_F(Rdata_DHCID_Test, badText) {
+ // missing digest data
+ checkFromText_InvalidText("");
+
+ // invalid base64
checkFromText_BadValue("EEeeeeeeEEEeeeeeeGaaahAAAAAAAAHHHHHHHHHHH!=");
// unterminated multi-line base64
More information about the bind10-changes
mailing list