Commit 7ae095fa091af9a94e0e9bf140280a0519859d98

Authored by Jay Berkenbilt
1 parent f0fb19df

Fix JSON parser error found by fuzz

fuzz/json_fuzzer_seed_corpus/f297bc5680b3730d3386caa8dee36bf5a853516b 0 → 100644
  1 +"\,,,,,p,,-\,,,,
0 \ No newline at end of file 2 \ No newline at end of file
fuzz/qtest/fuzz.test
@@ -16,7 +16,7 @@ my @fuzzers = ( @@ -16,7 +16,7 @@ my @fuzzers = (
16 ['dct' => 1], 16 ['dct' => 1],
17 ['flate' => 1], 17 ['flate' => 1],
18 ['hex' => 1], 18 ['hex' => 1],
19 - ['json' => 37], 19 + ['json' => 38],
20 ['lzw' => 2], 20 ['lzw' => 2],
21 ['pngpredictor' => 1], 21 ['pngpredictor' => 1],
22 ['runlength' => 6], 22 ['runlength' => 6],
libqpdf/JSON.cc
@@ -1246,7 +1246,8 @@ JSONParser::handleToken() @@ -1246,7 +1246,8 @@ JSONParser::handleToken()
1246 break; 1246 break;
1247 1247
1248 default: 1248 default:
1249 - throw std::logic_error("JSONParser::handleToken : non-terminal lexer state encountered"); 1249 + throw std::runtime_error(
  1250 + "JSON: offset " + std::to_string(offset) + ": premature end of input");
1250 break; 1251 break;
1251 } 1252 }
1252 1253