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 2 \ No newline at end of file
... ...
fuzz/qtest/fuzz.test
... ... @@ -16,7 +16,7 @@ my @fuzzers = (
16 16 ['dct' => 1],
17 17 ['flate' => 1],
18 18 ['hex' => 1],
19   - ['json' => 37],
  19 + ['json' => 38],
20 20 ['lzw' => 2],
21 21 ['pngpredictor' => 1],
22 22 ['runlength' => 6],
... ...
libqpdf/JSON.cc
... ... @@ -1246,7 +1246,8 @@ JSONParser::handleToken()
1246 1246 break;
1247 1247  
1248 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 1251 break;
1251 1252 }
1252 1253  
... ...