BIND 10 trac2512, updated. a6a6cb2e33f807593e6d457bfc822a9c31ef211e [2512] Use CharStringData when constructing from parameters too

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Feb 11 08:06:27 UTC 2014


The branch, trac2512 has been updated
       via  a6a6cb2e33f807593e6d457bfc822a9c31ef211e (commit)
      from  3c09cb5da05b2439201dc01b351f5003f1dd8557 (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 a6a6cb2e33f807593e6d457bfc822a9c31ef211e
Author: Mukund Sivaraman <muks at isc.org>
Date:   Tue Feb 11 13:35:59 2014 +0530

    [2512] Use CharStringData when constructing from parameters too
    
    This supports handling escapes and such when coming from the
    presentation format.

-----------------------------------------------------------------------

Summary of changes:
 src/lib/dns/rdata/generic/caa_257.cc    |    7 +++++--
 src/lib/dns/tests/rdata_caa_unittest.cc |    6 ++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/dns/rdata/generic/caa_257.cc b/src/lib/dns/rdata/generic/caa_257.cc
index a031ab1..9e6fa9b 100644
--- a/src/lib/dns/rdata/generic/caa_257.cc
+++ b/src/lib/dns/rdata/generic/caa_257.cc
@@ -195,9 +195,12 @@ CAA::CAA(uint8_t flags, const std::string& tag, const std::string& value) :
                   "CAA tag field is too large: " << tag.size());
     }
 
+    MasterToken::StringRegion region;
+    region.beg = &value[0]; // note std ensures this works even if str is empty
+    region.len = value.size();
+
     detail::CharStringData value_vec;
-    value_vec.reserve(value.size());
-    value_vec.insert(value_vec.end(), value.begin(), value.end());
+    detail::stringToCharStringData(region, value_vec);
 
     impl_ = new CAAImpl(flags, tag, value_vec);
 }
diff --git a/src/lib/dns/tests/rdata_caa_unittest.cc b/src/lib/dns/tests/rdata_caa_unittest.cc
index 05d177e..a2a9f9e 100644
--- a/src/lib/dns/tests/rdata_caa_unittest.cc
+++ b/src/lib/dns/tests/rdata_caa_unittest.cc
@@ -207,6 +207,12 @@ TEST_F(Rdata_CAA_Test, createFromParams) {
     const generic::CAA rdata_caa2(0, "issue", "ca.example.net");
     EXPECT_EQ(0, rdata_caa2.compare(rdata_caa));
 
+    const generic::CAA rdata_caa4(0, "issue", "ca.e\\xample.net");
+    EXPECT_EQ(0, rdata_caa4.compare(rdata_caa));
+
+    const generic::CAA rdata_caa5(0, "issue", "ca.e\\120ample.net");
+    EXPECT_EQ(0, rdata_caa5.compare(rdata_caa));
+
     // Tag is empty
     EXPECT_THROW(const generic::CAA rdata_caa3(0, "", "ca.example.net"),
                  isc::InvalidParameter);



More information about the bind10-changes mailing list