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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
8 20 unsigned int QIntC::to_uint (unsigned long const&) call site: 00020 __cxa_allocate_exception
5 8 Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) call site: 00008 __cxa_allocate_exception
5 35 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00035 __cxa_allocate_exception
1 41 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00041
1 72 FuzzHelper::run() call site: 00072 __cxa_begin_catch

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_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) [function] [call site] 00006
4 Pipeline::Pipeline(char const*, Pipeline*) [function] [call site] 00007
4 void qpdf::util::assertion<char const (&) [53]>(bool, char const (&) [53]) [function] [call site] 00008
5 __cxa_allocate_exception [call site] 00009
5 std::logic_error::logic_error(char const*) [call site] 00010
5 __cxa_throw [call site] 00011
5 std::logic_error::~logic_error() [call site] 00012
5 __cxa_free_exception [call site] 00013
4 Pipeline::~Pipeline() [function] [call site] 00014
3 Pl_LZWDecoder::write(unsigned char const*, unsigned long) [function] [call site] 00015
4 Pl_LZWDecoder::sendNextCode() [function] [call site] 00016
5 Pl_LZWDecoder::handleCode(unsigned int) [function] [call site] 00017
6 QTC::TC(char const*, char const*, int) [function] [call site] 00018
6 unsigned int QIntC::to_uint<unsigned long>(unsigned long const&) [function] [call site] 00019
7 QIntC::IntConverter<unsigned long, unsigned int, false, false>::convert(unsigned long const&) [function] [call site] 00020
8 QIntC::IntConverter<unsigned long, unsigned int, false, false>::error(unsigned long) [function] [call site] 00021
9 __cxa_allocate_exception [call site] 00022
9 std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str[abi:ne220000]() const & [function] [call site] 00023
10 std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str[abi:ne220000]() const & [function] [call site] 00024
9 std::range_error::range_error[abi:ne220000](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00025
10 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00026
9 __cxa_throw [call site] 00027
9 __cxa_free_exception [call site] 00028
6 __cxa_allocate_exception [call site] 00029
6 std::runtime_error::runtime_error(char const*) [call site] 00030
6 __cxa_throw [call site] 00031
6 std::runtime_error::~runtime_error() [call site] 00032
6 __cxa_free_exception [call site] 00033
6 Pl_LZWDecoder::getFirstChar(unsigned int) [function] [call site] 00034
7 void qpdf::util::no_ci_rt_error_if<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00035
8 __cxa_allocate_exception [call site] 00036
8 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00037
8 __cxa_throw [call site] 00038
8 std::runtime_error::~runtime_error() [call site] 00039
8 __cxa_free_exception [call site] 00040
7 void qpdf::util::no_ci_rt_error_if<char const (&) [44]>(bool, char const (&) [44]) [function] [call site] 00041
8 std::runtime_error::runtime_error(char const*) [call site] 00042
7 Buffer::getBuffer() [function] [call site] 00043
6 Pl_LZWDecoder::getFirstChar(unsigned int) [function] [call site] 00044
6 void qpdf::util::no_ci_rt_error_if<char const (&) [23]>(bool, char const (&) [23]) [function] [call site] 00045
6 Pl_LZWDecoder::addToTable(unsigned char) [function] [call site] 00046
7 void qpdf::util::no_ci_rt_error_if<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00047
7 void qpdf::util::no_ci_rt_error_if<char const (&) [42]>(bool, char const (&) [42]) [function] [call site] 00048
7 Buffer::getBuffer() [function] [call site] 00049
7 Buffer::getSize() const [function] [call site] 00050
7 unsigned int QIntC::to_uint<unsigned long>(unsigned long const&) [function] [call site] 00051
7 Buffer::Buffer(unsigned long) [function] [call site] 00052
7 Buffer::getBuffer() [function] [call site] 00053
7 Buffer::~Buffer() [function] [call site] 00054
6 Pipeline::next() const [function] [call site] 00055
6 __cxa_allocate_exception [call site] 00056
6 std::runtime_error::runtime_error(char const*) [call site] 00057
6 __cxa_throw [call site] 00058
6 std::runtime_error::~runtime_error() [call site] 00059
6 __cxa_free_exception [call site] 00060
6 Pipeline::next() const [function] [call site] 00061
6 Buffer::getBuffer() [function] [call site] 00062
6 Buffer::getSize() const [function] [call site] 00063
3 Pl_LZWDecoder::finish() [function] [call site] 00064
4 Pipeline::next() const [function] [call site] 00065
3 Pl_LZWDecoder::~Pl_LZWDecoder() [function] [call site] 00066
4 Pipeline::~Pipeline() [function] [call site] 00067
3 Pl_Discard::~Pl_Discard() [function] [call site] 00068
4 Pipeline::~Pipeline() [function] [call site] 00069
2 __cxa_begin_catch [call site] 00070
2 __cxa_end_catch [call site] 00071
2 __clang_call_terminate [call site] 00072
3 __cxa_begin_catch [call site] 00073