Fuzz introspector: ascii85_fuzzer
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 Pl_ASCII85Decoder::Pl_ASCII85Decoder(charconst*,Pipeline*) call site: 00000 /src/qpdf/libqpdf/Pl_ASCII85Decoder.cc:10
0 0 None 0 0 Pl_ASCII85Decoder::write(unsignedcharconst*,unsignedlong) call site: 00000 /src/qpdf/libqpdf/Pl_ASCII85Decoder.cc:18
0 0 None 0 0 Pl_ASCII85Decoder::finish() call site: 00000 /src/qpdf/libqpdf/Pl_ASCII85Decoder.cc:107

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 FuzzHelper::FuzzHelper(unsigned char const*, unsigned long) [function] [call site] 00001
1 FuzzHelper::run() [function] [call site] 00002
2 FuzzHelper::doChecks() [function] [call site] 00003
3 Pl_Discard::Pl_Discard() [function] [call site] 00004
4 Pipeline::Pipeline(char const*, Pipeline*) [function] [call site] 00005
3 Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*) [function] [call site] 00006
4 Pipeline::Pipeline(char const*, Pipeline*) [function] [call site] 00007
4 __cxa_allocate_exception [call site] 00008
4 std::logic_error::logic_error(char const*) [call site] 00009
4 __cxa_throw [call site] 00010
4 __cxa_free_exception [call site] 00011
4 Pipeline::~Pipeline() [function] [call site] 00012
3 Pl_ASCII85Decoder::write(unsigned char const*, unsigned long) [function] [call site] 00013
4 QTC::TC(char const*, char const*, int) [function] [call site] 00014
4 Pl_ASCII85Decoder::flush() [function] [call site] 00015
5 QTC::TC(char const*, char const*, int) [function] [call site] 00016
5 QTC::TC(char const*, char const*, int) [function] [call site] 00017
5 Pipeline::next() const [function] [call site] 00018
4 __cxa_allocate_exception [call site] 00019
4 std::runtime_error::runtime_error(char const*) [call site] 00020
4 __cxa_throw [call site] 00021
4 std::runtime_error::~runtime_error() [call site] 00022
4 __cxa_free_exception [call site] 00023
4 __cxa_allocate_exception [call site] 00024
4 std::runtime_error::runtime_error(char const*) [call site] 00025
4 __cxa_throw [call site] 00026
4 std::runtime_error::~runtime_error() [call site] 00027
4 __cxa_free_exception [call site] 00028
4 QTC::TC(char const*, char const*, int) [function] [call site] 00029
4 Pipeline::next() const [function] [call site] 00030
4 __cxa_allocate_exception [call site] 00031
4 std::runtime_error::runtime_error(char const*) [call site] 00032
4 __cxa_throw [call site] 00033
4 std::runtime_error::~runtime_error() [call site] 00034
4 __cxa_free_exception [call site] 00035
4 Pl_ASCII85Decoder::flush() [function] [call site] 00036
3 Pl_ASCII85Decoder::finish() [function] [call site] 00037
4 Pl_ASCII85Decoder::flush() [function] [call site] 00038
4 Pipeline::next() const [function] [call site] 00039
3 Pl_ASCII85Decoder::~Pl_ASCII85Decoder() [function] [call site] 00040
4 Pipeline::~Pipeline() [function] [call site] 00041
3 Pl_Discard::~Pl_Discard() [function] [call site] 00042
4 Pipeline::~Pipeline() [function] [call site] 00043
2 __cxa_begin_catch [call site] 00044
2 __cxa_end_catch [call site] 00045
2 __clang_call_terminate [call site] 00046
3 __cxa_begin_catch [call site] 00047