summaryrefslogtreecommitdiffstats
path: root/libtests
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-01-29 16:21:29 +0100
committerm-holger <m-holger@kubitscheck.org>2023-02-04 16:00:21 +0100
commitee32235f54884247f6117fc0fbdd462a4e38ac1f (patch)
treebf145b436e88923572a0ae8e7bdf4b42ea9a0ed9 /libtests
parentf5b7448a2732d0e6f39855b98ebca63df2824916 (diff)
downloadqpdf-ee32235f54884247f6117fc0fbdd462a4e38ac1f.tar.zst
In JSONParser::getToken handle legal control chars early
Also, reject them in strings.
Diffstat (limited to 'libtests')
-rw-r--r--libtests/libtests.testcov1
-rw-r--r--libtests/qtest/json_parse.test8
-rw-r--r--libtests/qtest/json_parse/bad-01.out2
-rw-r--r--libtests/qtest/json_parse/bad-02.out2
-rw-r--r--libtests/qtest/json_parse/bad-03.out2
-rw-r--r--libtests/qtest/json_parse/bad-27.out2
-rw-r--r--libtests/qtest/json_parse/bad-31.json2
-rw-r--r--libtests/qtest/json_parse/bad-45.out2
-rw-r--r--libtests/qtest/json_parse/bad-46.out2
-rw-r--r--libtests/qtest/json_parse/bad-47.out2
10 files changed, 13 insertions, 12 deletions
diff --git a/libtests/libtests.testcov b/libtests/libtests.testcov
index 4b3bb45b..5e5c2e00 100644
--- a/libtests/libtests.testcov
+++ b/libtests/libtests.testcov
@@ -79,6 +79,7 @@ JSON parse number minus no digits 0
JSON parse incomplete number 0
JSON parse keyword bad character 0
JSON parse backslash bad character 0
+JSON parse control char in string 0
JSON parse leading zero 0
JSON parse ls premature end of input 0
JSON parse bad hex after u 0
diff --git a/libtests/qtest/json_parse.test b/libtests/qtest/json_parse.test
index 8234b755..699544f6 100644
--- a/libtests/qtest/json_parse.test
+++ b/libtests/qtest/json_parse.test
@@ -125,10 +125,10 @@ my @bad = (
"e after minus", # 42
"missing digit after e", # 43
"missing digit after e+/-", # 44
- # "tab char in string", # 45
- # "cr char in string", # 46
- # "lf char in string", # 47
- # "bs char in string", # 48
+ "tab char in string", # 45
+ "cr char in string", # 46
+ "lf char in string", # 47
+ "bs char in string", # 48
);
my $i = 0;
diff --git a/libtests/qtest/json_parse/bad-01.out b/libtests/qtest/json_parse/bad-01.out
index a4254cff..8ae96c30 100644
--- a/libtests/qtest/json_parse/bad-01.out
+++ b/libtests/qtest/json_parse/bad-01.out
@@ -1 +1 @@
-exception: bad-01.json: JSON: offset 9: material follows end of object: junk
+exception: bad-01.json: JSON: offset 8: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-02.out b/libtests/qtest/json_parse/bad-02.out
index 485c9658..212b2f4f 100644
--- a/libtests/qtest/json_parse/bad-02.out
+++ b/libtests/qtest/json_parse/bad-02.out
@@ -1 +1 @@
-exception: bad-02.json: JSON: offset 11: material follows end of object: junk
+exception: bad-02.json: JSON: offset 10: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-03.out b/libtests/qtest/json_parse/bad-03.out
index 38f35119..a1411e0e 100644
--- a/libtests/qtest/json_parse/bad-03.out
+++ b/libtests/qtest/json_parse/bad-03.out
@@ -1 +1 @@
-exception: bad-03.json: JSON: offset 16: material follows end of object: junk
+exception: bad-03.json: JSON: offset 15: material follows end of object: junk
diff --git a/libtests/qtest/json_parse/bad-27.out b/libtests/qtest/json_parse/bad-27.out
index 70fcbf74..4c1ecfeb 100644
--- a/libtests/qtest/json_parse/bad-27.out
+++ b/libtests/qtest/json_parse/bad-27.out
@@ -1 +1 @@
-exception: bad-27.json: JSON: premature end of input
+exception: bad-27.json: JSON: offset 5: control character in string (missing "?)
diff --git a/libtests/qtest/json_parse/bad-31.json b/libtests/qtest/json_parse/bad-31.json
index 39cdd0de..277cc02f 100644
--- a/libtests/qtest/json_parse/bad-31.json
+++ b/libtests/qtest/json_parse/bad-31.json
@@ -1 +1 @@
--
+-
diff --git a/libtests/qtest/json_parse/bad-45.out b/libtests/qtest/json_parse/bad-45.out
index ba7e4f16..d4320b0a 100644
--- a/libtests/qtest/json_parse/bad-45.out
+++ b/libtests/qtest/json_parse/bad-45.out
@@ -1 +1 @@
-"Tab in str\ting"
+exception: bad-45.json: JSON: offset 11: control character in string (missing "?)
diff --git a/libtests/qtest/json_parse/bad-46.out b/libtests/qtest/json_parse/bad-46.out
index 2baad6a4..50aa5ffb 100644
--- a/libtests/qtest/json_parse/bad-46.out
+++ b/libtests/qtest/json_parse/bad-46.out
@@ -1 +1 @@
-"cr in str\ring"
+exception: bad-46.json: JSON: offset 10: control character in string (missing "?)
diff --git a/libtests/qtest/json_parse/bad-47.out b/libtests/qtest/json_parse/bad-47.out
index 30549072..39f9d3d5 100644
--- a/libtests/qtest/json_parse/bad-47.out
+++ b/libtests/qtest/json_parse/bad-47.out
@@ -1 +1 @@
-"lf in str\ning"
+exception: bad-47.json: JSON: offset 10: control character in string (missing "?)