aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--modules/skjson/src/SkJSON.cpp4
-rw-r--r--modules/skjson/src/SkJSONTest.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/modules/skjson/src/SkJSON.cpp b/modules/skjson/src/SkJSON.cpp
index 7f082d7294..d423715947 100644
--- a/modules/skjson/src/SkJSON.cpp
+++ b/modules/skjson/src/SkJSON.cpp
@@ -355,6 +355,10 @@ public:
: this->error(NullValue(), p + 1, "trailing root garbage");
}
+ if (p == p_stop) {
+ return this->error(NullValue(), p, "unexpected end-of-input");
+ }
+
++p;
goto match_post_value;
diff --git a/modules/skjson/src/SkJSONTest.cpp b/modules/skjson/src/SkJSONTest.cpp
index 91ae497cf0..1aaa278fb8 100644
--- a/modules/skjson/src/SkJSONTest.cpp
+++ b/modules/skjson/src/SkJSONTest.cpp
@@ -49,6 +49,7 @@ DEF_TEST(SkJSON_Parse, reporter) {
{ "[ \"foo" , nullptr },
{ "[ \"fo\0o\" ]" , nullptr },
+ { "{\"\":{}" , nullptr },
{ "{ null }" , nullptr },
{ "{ \"k\" : }" , nullptr },
{ "{ : null }" , nullptr },