diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-09-05 13:26:16 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2014-09-10 21:10:45 +0200 |
commit | df25927a6827c0abce6d35440359a835d23226f7 (patch) | |
tree | ef060f0fc451806856c6c009f10e40be7d89e061 /tests/auto/corelib/json | |
parent | 853845a4a2570302def9526a99f2b09433c286c5 (diff) |
Don't accept json strings with trailing garbage
A well formed JSON document is not allowed to contain
trailing garbage at the end. Don't accept this in the
parser.
Task-number: QTBUG-40062
Change-Id: I0a09dbd099a8c643f58023342546c4e67d026fec
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'tests/auto/corelib/json')
-rw-r--r-- | tests/auto/corelib/json/tst_qtjson.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp index ba19e4855d..253741c103 100644 --- a/tests/auto/corelib/json/tst_qtjson.cpp +++ b/tests/auto/corelib/json/tst_qtjson.cpp @@ -151,6 +151,7 @@ private Q_SLOTS: void objectInitializerList(); void unicodeKeys(); + void garbageAtEnd(); private: QString testDataDir; }; @@ -2777,5 +2778,18 @@ void tst_QtJson::unicodeKeys() } } +void tst_QtJson::garbageAtEnd() +{ + QJsonParseError error; + QJsonDocument doc = QJsonDocument::fromJson("{},", &error); + QVERIFY(error.error == QJsonParseError::GarbageAtEnd); + QVERIFY(error.offset == 2); + QVERIFY(doc.isEmpty()); + + doc = QJsonDocument::fromJson("{} ", &error); + QVERIFY(error.error == QJsonParseError::NoError); + QVERIFY(!doc.isEmpty()); +} + QTEST_MAIN(tst_QtJson) #include "tst_qtjson.moc" |