diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-05-20 02:28:13 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-05-20 15:16:25 +0200 |
commit | 6c7326b290462372bb6c23462b2087149cf5fcc6 (patch) | |
tree | 1d741cd13b60956551099c0c6b70834bd1f7f4b3 /libtests/qtest/json_parse | |
parent | 1ec561daa493713ab83057c6a18383947f56c451 (diff) | |
download | qpdf-6c7326b290462372bb6c23462b2087149cf5fcc6.tar.zst |
JSON fix: correctly parse UTF-16 surrogate pairs
Diffstat (limited to 'libtests/qtest/json_parse')
-rw-r--r-- | libtests/qtest/json_parse/bad-37.json | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/bad-37.out | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/bad-38.json | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/bad-38.out | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/bad-39.json | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/bad-39.out | 1 | ||||
-rw-r--r-- | libtests/qtest/json_parse/good-11-react.out | 16 | ||||
-rw-r--r-- | libtests/qtest/json_parse/good-11.json | 4 | ||||
-rw-r--r-- | libtests/qtest/json_parse/save-11.json | 13 |
9 files changed, 39 insertions, 0 deletions
diff --git a/libtests/qtest/json_parse/bad-37.json b/libtests/qtest/json_parse/bad-37.json new file mode 100644 index 00000000..3fd031aa --- /dev/null +++ b/libtests/qtest/json_parse/bad-37.json @@ -0,0 +1 @@ +[1, "u:potato: \udd54", 2] diff --git a/libtests/qtest/json_parse/bad-37.out b/libtests/qtest/json_parse/bad-37.out new file mode 100644 index 00000000..8b811a34 --- /dev/null +++ b/libtests/qtest/json_parse/bad-37.out @@ -0,0 +1 @@ +exception: bad-37.json: JSON: offset 15: UTF-16 low surrogate found not immediately after high surrogate diff --git a/libtests/qtest/json_parse/bad-38.json b/libtests/qtest/json_parse/bad-38.json new file mode 100644 index 00000000..78444f98 --- /dev/null +++ b/libtests/qtest/json_parse/bad-38.json @@ -0,0 +1 @@ +"u:\ud83ezz\ud83ezz" diff --git a/libtests/qtest/json_parse/bad-38.out b/libtests/qtest/json_parse/bad-38.out new file mode 100644 index 00000000..1b4461f1 --- /dev/null +++ b/libtests/qtest/json_parse/bad-38.out @@ -0,0 +1 @@ +exception: bad-38.json: JSON: offset 11: UTF-16 high surrogate found after previous high surrogate at offset 3 diff --git a/libtests/qtest/json_parse/bad-39.json b/libtests/qtest/json_parse/bad-39.json new file mode 100644 index 00000000..2edab94b --- /dev/null +++ b/libtests/qtest/json_parse/bad-39.json @@ -0,0 +1 @@ +"u:\ud83e all alone" diff --git a/libtests/qtest/json_parse/bad-39.out b/libtests/qtest/json_parse/bad-39.out new file mode 100644 index 00000000..a408dba8 --- /dev/null +++ b/libtests/qtest/json_parse/bad-39.out @@ -0,0 +1 @@ +exception: bad-39.json: JSON: offset 3: UTF-16 high surrogate not followed by low surrogate diff --git a/libtests/qtest/json_parse/good-11-react.out b/libtests/qtest/json_parse/good-11-react.out new file mode 100644 index 00000000..6cf3345e --- /dev/null +++ b/libtests/qtest/json_parse/good-11-react.out @@ -0,0 +1,16 @@ +array start +array item: [4, 0): [] +array start +array item: [5, 11): "u:π" +array item: [13, 23): "u:π" +array item: [25, 39): "b:EFBBBFCF80" +array item: [41, 53): "b:feff03c0" +container end: [4, 54): [] +array item: [58, 0): [] +array start +array item: [59, 67): "u:🥔" +array item: [69, 85): "u:🥔" +array item: [87, 103): "b:feffd83eDD54" +container end: [58, 104): [] +container end: [0, 106): [] +[] diff --git a/libtests/qtest/json_parse/good-11.json b/libtests/qtest/json_parse/good-11.json new file mode 100644 index 00000000..0a492795 --- /dev/null +++ b/libtests/qtest/json_parse/good-11.json @@ -0,0 +1,4 @@ +[ + ["u:π", "u:\u03c0", "b:EFBBBFCF80", "b:feff03c0"], + ["u:🥔", "u:\ud83e\udd54", "b:feffd83eDD54"] +] diff --git a/libtests/qtest/json_parse/save-11.json b/libtests/qtest/json_parse/save-11.json new file mode 100644 index 00000000..f935b8bf --- /dev/null +++ b/libtests/qtest/json_parse/save-11.json @@ -0,0 +1,13 @@ +[ + [ + "u:π", + "u:π", + "b:EFBBBFCF80", + "b:feff03c0" + ], + [ + "u:🥔", + "u:🥔", + "b:feffd83eDD54" + ] +] |