BIND 10 master, updated. 2c936393a16d79fa3d4bbbdacc66884f7d8d3cb9 Merge branch 'trac1072'

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Jul 4 15:32:49 UTC 2011


The branch, master has been updated
       via  2c936393a16d79fa3d4bbbdacc66884f7d8d3cb9 (commit)
       via  ec45081d781ae19de834b11e000acc35415a8f30 (commit)
       via  b9ad6d4babd3e10f1c13140e53d60181681a5def (commit)
      from  3383b56081364d68de8c29fb34698a7651c50e05 (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 2c936393a16d79fa3d4bbbdacc66884f7d8d3cb9
Merge: 3383b56081364d68de8c29fb34698a7651c50e05 ec45081d781ae19de834b11e000acc35415a8f30
Author: Jelte Jansen <jelte at isc.org>
Date:   Mon Jul 4 17:22:47 2011 +0200

    Merge branch 'trac1072'

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

Summary of changes:
 src/lib/cc/data.cc                 |    4 +++-
 src/lib/cc/tests/data_unittests.cc |   15 +++++++++++++++
 2 files changed, 18 insertions(+), 1 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/cc/data.cc b/src/lib/cc/data.cc
index 932bef4..a455d43 100644
--- a/src/lib/cc/data.cc
+++ b/src/lib/cc/data.cc
@@ -447,7 +447,9 @@ from_stringstream_map(std::istream &in, const std::string& file, int& line,
     ElementPtr map = Element::createMap();
     skip_chars(in, " \t\n", line, pos);
     char c = in.peek();
-    if (c == '}') {
+    if (c == EOF) {
+        throwJSONError(std::string("Unterminated map, <string> or } expected"), file, line, pos);
+    } else if (c == '}') {
         // empty map, skip closing curly
         c = in.get();
     } else {
diff --git a/src/lib/cc/tests/data_unittests.cc b/src/lib/cc/tests/data_unittests.cc
index 2536682..53d5ab8 100644
--- a/src/lib/cc/tests/data_unittests.cc
+++ b/src/lib/cc/tests/data_unittests.cc
@@ -396,9 +396,24 @@ TEST(Element, to_and_from_wire) {
     EXPECT_EQ("1", Element::fromWire(ss, 1)->str());
 
     // Some malformed JSON input
+    EXPECT_THROW(Element::fromJSON("{ "), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\" "), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": "), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": \"b\""), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": {"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": {}"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": []"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\": [ }"), isc::data::JSONError);
     EXPECT_THROW(Element::fromJSON("{\":"), isc::data::JSONError);
     EXPECT_THROW(Element::fromJSON("]"), isc::data::JSONError);
     EXPECT_THROW(Element::fromJSON("[ 1, 2, }"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("[ 1, 2, {}"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("[ 1, 2, { ]"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("[ "), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{{}}"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{[]}"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("{ \"a\", \"b\" }"), isc::data::JSONError);
+    EXPECT_THROW(Element::fromJSON("[ \"a\": \"b\" ]"), isc::data::JSONError);
 }
 
 ConstElementPtr




More information about the bind10-changes mailing list