aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules/skjson/src/SkJSON.cpp
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2018-06-15 09:21:36 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-15 13:56:44 +0000
commit587f5a9a309feebee7bf069f762f5702baf4699e (patch)
treea3e627acaa2e8743d8cb5f2a3a10d5805e259e5d /modules/skjson/src/SkJSON.cpp
parentc891b102867d5af953c6a0ea68f15292bccd5035 (diff)
[skjson] Catch end-of-stream for unbalanced scopes
The input is not guaranteed to contain well-formed scopes, so it's not sufficient to check for end-of-stream only when popping the top-level scope -- we have to check on every scope pop. Bug: oss-fuzz:8898 Change-Id: I7399a8872187ec6714672cac2ff8fc7fbf3c2dfe Reviewed-on: https://skia-review.googlesource.com/135059 Reviewed-by: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'modules/skjson/src/SkJSON.cpp')
-rw-r--r--modules/skjson/src/SkJSON.cpp4
1 files changed, 4 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;