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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 45 26 4 8 129 87 ascii85_fuzzer.cc
flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 184 437 10 20 2805 1112 flate_fuzzer.cc
future_ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 45 26 4 8 129 87 ascii85_fuzzer.cc
future_runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 107 352 7 11 351 221 runlength_fuzzer.cc
tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 92 78 10 14 295 230 tiffpredictor_fuzzer.cc
future_flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 184 437 10 20 2805 1112 flate_fuzzer.cc
pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 73 69 7 8 236 182 pngpredictor_fuzzer.cc
hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 42 28 4 8 123 79 hex_fuzzer.cc
future_lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 80 48 9 12 255 191 lzw_fuzzer.cc
future_dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 279 866 9 58 4479 1774 dct_fuzzer.cc
dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 279 866 9 58 4479 1774 dct_fuzzer.cc
lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 80 48 9 12 255 191 lzw_fuzzer.cc
runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 107 352 7 11 351 221 runlength_fuzzer.cc
future_pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 73 69 7 8 236 182 pngpredictor_fuzzer.cc
future_tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 92 78 10 14 295 230 tiffpredictor_fuzzer.cc
future_hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 42 28 4 8 123 79 hex_fuzzer.cc
future_json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1544 2456 40 67 12151 9010 json_fuzzer.cc
future_qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1706 2469 38 69 13245 9887 qpdf_outlines_fuzzer.cc
future_qpdf_pages_fuzzer /src/qpdf/fuzz/qpdf_pages_fuzzer.cc 2350 2158 38 96 19849 14677 qpdf_pages_fuzzer.cc
json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1544 2454 40 67 12151 9010 json_fuzzer.cc
qpdf_pages_fuzzer /src/qpdf/fuzz/qpdf_pages_fuzzer.cc 2350 2156 38 96 19849 14677 qpdf_pages_fuzzer.cc
future_qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 2208 2381 38 89 19430 13275 qpdf_crypt_fuzzer.cc
qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1706 2467 38 69 13245 9887 qpdf_outlines_fuzzer.cc
qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 2190 2388 38 89 19274 13185 qpdf_lin_fuzzer.cc
future_qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 2206 2382 38 89 19418 13273 qpdf_crypt_insecure_fuzzer.cc
qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 2186 2390 38 89 19258 13181 qpdf_fuzzer.cc
future_qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 2186 2392 38 89 19258 13181 qpdf_fuzzer.cc
qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 2206 2380 38 89 19418 13273 qpdf_crypt_insecure_fuzzer.cc
qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 2208 2379 38 89 19430 13275 qpdf_crypt_fuzzer.cc
future_qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 2190 2390 38 89 19274 13185 qpdf_lin_fuzzer.cc

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: ascii85_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 7 14.5%
gold [1:9] 10 20.8%
yellow [10:29] 7 14.5%
greenyellow [30:49] 2 4.16%
lawngreen 50+ 22 45.8%
All colors 48 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*) call site: 00007 __cxa_allocate_exception
1 42 FuzzHelper::run() call site: 00042
1 46 FuzzHelper::run() call site: 00046 __cxa_begin_catch

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
16
Reachable functions
45
Percentage of reachable functions covered
64.44%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/ascii85_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_ASCII85Decoder.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 2
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCII85Decoder.hh 1

Fuzzer: flate_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 269 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 269 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
268 0 EP call site: 00000 deflate

Runtime coverage analysis

Covered functions
1
Functions that are reachable but not covered
184
Reachable functions
184
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/flate_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 9
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 8
/src/qpdf/include/qpdf/QIntC.hh 9
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1

Fuzzer: future_ascii85_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 7 14.5%
gold [1:9] 5 10.4%
yellow [10:29] 12 25.0%
greenyellow [30:49] 2 4.16%
lawngreen 50+ 22 45.8%
All colors 48 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*) call site: 00007 __cxa_allocate_exception
1 42 FuzzHelper::run() call site: 00042
1 46 FuzzHelper::run() call site: 00046 __cxa_begin_catch

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
16
Reachable functions
45
Percentage of reachable functions covered
64.44%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/ascii85_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_ASCII85Decoder.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 2
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCII85Decoder.hh 1

Fuzzer: future_runlength_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 45 45.9%
gold [1:9] 0 0.0%
yellow [10:29] 5 5.10%
greenyellow [30:49] 5 5.10%
lawngreen 50+ 43 43.8%
All colors 98 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 21 qpdf::global::Options::fuzz_mode(bool) call site: 00021 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
12 58 FuzzHelper::run() call site: 00058
11 39 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00039 __cxa_allocate_exception
2 78 FuzzHelper::run() call site: 00078
1 5 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00005
1 55 Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e) call site: 00055
1 96 FuzzHelper::run() call site: 00096 __cxa_begin_catch

Runtime coverage analysis

Covered functions
38
Functions that are reachable but not covered
45
Reachable functions
107
Percentage of reachable functions covered
57.94%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/runlength_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 10
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 3
/src/qpdf/libqpdf/Pl_RunLength.cc 7
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1

Fuzzer: tiffpredictor_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 42 49.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 43 50.5%
All colors 85 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
13 35 unsigned int QIntC::to_uint (unsigned long const&) call site: 00035 __cxa_allocate_exception
10 50 BitStream::getBitsSigned(unsigned long) call site: 00050 __cxa_allocate_exception
5 7 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00007 __cxa_allocate_exception
5 13 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00013 __cxa_allocate_exception
5 63 BitWriter::writeBits(unsigned long long, unsigned long) call site: 00063 __cxa_allocate_exception
2 82 Pl_Discard::~Pl_Discard() call site: 00082 __clang_call_terminate
1 69 Pl_TIFFPredictor::processRow() call site: 00069
1 77 FuzzHelper::run() call site: 00077 __cxa_end_catch

Runtime coverage analysis

Covered functions
35
Functions that are reachable but not covered
30
Reachable functions
92
Percentage of reachable functions covered
67.39%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/tiffpredictor_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 7
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/BitStream.cc 3
/src/qpdf/include/qpdf/QIntC.hh 3
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/qpdf/bits_functions.hh 2
/src/qpdf/libqpdf/qpdf/Pl_TIFFPredictor.hh 1

Fuzzer: future_flate_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 165 61.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 104 38.6%
All colors 269 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
26 200 deflate call site: 00200 inflate
17 21 qpdf::global::Options::fuzz_mode(bool) call site: 00021 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
15 129 deflate call site: 00129 crc32
13 87 deflateResetKeep call site: 00087 crc32_z
11 39 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00039 __cxa_allocate_exception
11 186 deflate call site: 00186 _tr_flush_block
8 56 unsigned long QIntC::to_size (unsigned int const&) call site: 00056 __cxa_allocate_exception
8 106 deflateReset call site: 00106 inflateInit_
7 251 Pl_Flate::finish() call site: 00251 __cxa_begin_catch
6 228 unsigned long QIntC::to_ulong (unsigned long const&) call site: 00228 __cxa_allocate_exception
6 238 FuzzHelper::run() call site: 00238 __cxa_allocate_exception
5 71 Pl_Flate::handleData(unsigned char const*, unsigned long, int) call site: 00071 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
86
Functions that are reachable but not covered
77
Reachable functions
184
Percentage of reachable functions covered
58.15%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/flate_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 9
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 8
/src/qpdf/include/qpdf/QIntC.hh 9
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1

Fuzzer: pngpredictor_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 17 29.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 40 70.1%
All colors 57 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00007 __cxa_allocate_exception
5 13 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00013 __cxa_allocate_exception
4 31 Pl_PNGFilter::write(unsigned char const*, unsigned long) call site: 00031
2 54 Pl_Discard::~Pl_Discard() call site: 00054 __clang_call_terminate
1 49 FuzzHelper::run() call site: 00049 __cxa_end_catch

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
16
Reachable functions
73
Percentage of reachable functions covered
78.08%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/pngpredictor_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/libqpdf/qpdf/Util.hh 9
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1

Fuzzer: hex_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 7 18.9%
gold [1:9] 1 2.70%
yellow [10:29] 0 0.0%
greenyellow [30:49] 6 16.2%
lawngreen 50+ 23 62.1%
All colors 37 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*) call site: 00007 __cxa_allocate_exception
1 31 FuzzHelper::run() call site: 00031
1 35 FuzzHelper::run() call site: 00035 __cxa_begin_catch

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
15
Reachable functions
42
Percentage of reachable functions covered
64.29%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/hex_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_ASCIIHexDecoder.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh 1

Fuzzer: future_lzw_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 20 27.3%
gold [1:9] 0 0.0%
yellow [10:29] 5 6.84%
greenyellow [30:49] 7 9.58%
lawngreen 50+ 41 56.1%
All colors 73 100

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 19 unsigned int QIntC::to_uint (unsigned long const&) call site: 00019 __cxa_allocate_exception
5 7 Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) call site: 00007 __cxa_allocate_exception
5 34 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00034 __cxa_allocate_exception
1 40 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00040
1 71 FuzzHelper::run() call site: 00071 __cxa_begin_catch

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
25
Reachable functions
80
Percentage of reachable functions covered
68.75%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/lzw_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_LZWDecoder.cc 7
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 3
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.hh 1

Fuzzer: future_dct_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 207 56.7%
gold [1:9] 1 0.27%
yellow [10:29] 1 0.27%
greenyellow [30:49] 5 1.36%
lawngreen 50+ 151 41.3%
All colors 365 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 135 init_simd call site: 00135 jinit_forward_dct
32 90 std_huff_tables call site: 00090 jpeg_start_compress
30 192 unsigned int QIntC::to_uint (int const&) call site: 00192 jpeg_finish_compress
19 269 master_selection call site: 00269 jinit_1pass_quantizer
17 22 qpdf::global::Options::fuzz_mode(bool) call site: 00022 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 40 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00040 __cxa_allocate_exception
11 74 jinit_memory_mgr call site: 00074 jpeg_set_defaults
9 245 jpeg_core_output_dimensions call site: 00245 jdiv_round_up
7 237 jpeg_calc_output_dimensions call site: 00237 jdiv_round_up
3 65 Pl_DCT::finish() call site: 00065 jpeg_CreateCompress
3 293 jinit_color_deconverter call site: 00293 jsimd_set_ycc_rgb565
2 346 Pl_DCT::finish() call site: 00346 jpeg_destroy_compress

Runtime coverage analysis

Covered functions
223
Functions that are reachable but not covered
149
Reachable functions
279
Percentage of reachable functions covered
46.59%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/dct_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 8
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_DCT.cc 10
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/libjpeg-turbo/src/jerror.c 1
/src/libjpeg-turbo/src/jcapimin.c 4
/src/libjpeg-turbo/src/jmemmgr.c 1
/src/libjpeg-turbo/src/jmemnobs.c 3
/src/libjpeg-turbo/src/jcparam.c 7
/src/libjpeg-turbo/src/jcomapi.c 4
/src/libjpeg-turbo/src/jstdhuff.c 2
/src/libjpeg-turbo/src/wrapper/../jcapistd.c 2
/src/libjpeg-turbo/src/jcinit.c 1
/src/libjpeg-turbo/src/jcmaster.c 4
/src/libjpeg-turbo/src/wrapper/../jutils.c 2
/src/libjpeg-turbo/src/wrapper/../jccolor.c 3
/src/libjpeg-turbo/simd/jsimd.c 20
/src/libjpeg-turbo/src/wrapper/../jcsample.c 3
/src/libjpeg-turbo/src/wrapper/../jcprepct.c 4
/src/libjpeg-turbo/src/wrapper/../jclossls.c 3
/src/libjpeg-turbo/src/jclhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jcdiffct.c 3
/src/libjpeg-turbo/src/wrapper/../jcdctmgr.c 2
/src/libjpeg-turbo/src/jcarith.c 1
/src/libjpeg-turbo/src/jcphuff.c 1
/src/libjpeg-turbo/src/jchuff.c 1
/src/libjpeg-turbo/src/wrapper/../jccoefct.c 2
/src/libjpeg-turbo/src/wrapper/../jcmainct.c 3
/src/libjpeg-turbo/src/jcmarker.c 1
/src/qpdf/include/qpdf/QIntC.hh 9
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/libjpeg-turbo/src/jdapimin.c 6
/src/libjpeg-turbo/src/jdmarker.c 2
/src/libjpeg-turbo/src/jdinput.c 1
/src/libjpeg-turbo/src/jdmaster.c 6
/src/libjpeg-turbo/src/wrapper/../jdapistd.c 3
/src/libjpeg-turbo/src/wrapper/../jquant1.c 8
/src/libjpeg-turbo/src/wrapper/../jquant2.c 3
/src/libjpeg-turbo/src/wrapper/../jdmerge.c 3
/src/libjpeg-turbo/src/wrapper/../jdcolor.c 5
/src/libjpeg-turbo/src/wrapper/../jdsample.c 3
/src/libjpeg-turbo/src/wrapper/../jdpostct.c 3
/src/libjpeg-turbo/src/wrapper/../jdlossls.c 3
/src/libjpeg-turbo/src/jdlhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jddiffct.c 3
/src/libjpeg-turbo/src/wrapper/../jddctmgr.c 2
/src/libjpeg-turbo/src/jdarith.c 1
/src/libjpeg-turbo/src/jdphuff.c 1
/src/libjpeg-turbo/src/jdhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jdcoefct.c 2
/src/libjpeg-turbo/src/wrapper/../jdmainct.c 4

Fuzzer: dct_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 207 56.7%
gold [1:9] 1 0.27%
yellow [10:29] 1 0.27%
greenyellow [30:49] 5 1.36%
lawngreen 50+ 151 41.3%
All colors 365 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 135 init_simd call site: 00135 jinit_forward_dct
32 90 std_huff_tables call site: 00090 jpeg_start_compress
30 192 unsigned int QIntC::to_uint (int const&) call site: 00192 jpeg_finish_compress
19 269 master_selection call site: 00269 jinit_1pass_quantizer
17 22 qpdf::global::Options::fuzz_mode(bool) call site: 00022 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 40 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00040 __cxa_allocate_exception
11 74 jinit_memory_mgr call site: 00074 jpeg_set_defaults
9 245 jpeg_core_output_dimensions call site: 00245 jdiv_round_up
7 237 jpeg_calc_output_dimensions call site: 00237 jdiv_round_up
3 65 Pl_DCT::finish() call site: 00065 jpeg_CreateCompress
3 293 jinit_color_deconverter call site: 00293 jsimd_set_ycc_rgb565
2 346 Pl_DCT::finish() call site: 00346 jpeg_destroy_compress

Runtime coverage analysis

Covered functions
223
Functions that are reachable but not covered
149
Reachable functions
279
Percentage of reachable functions covered
46.59%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/dct_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 8
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_DCT.cc 10
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/libjpeg-turbo/src/jerror.c 1
/src/libjpeg-turbo/src/jcapimin.c 4
/src/libjpeg-turbo/src/jmemmgr.c 1
/src/libjpeg-turbo/src/jmemnobs.c 3
/src/libjpeg-turbo/src/jcparam.c 7
/src/libjpeg-turbo/src/jcomapi.c 4
/src/libjpeg-turbo/src/jstdhuff.c 2
/src/libjpeg-turbo/src/wrapper/../jcapistd.c 2
/src/libjpeg-turbo/src/jcinit.c 1
/src/libjpeg-turbo/src/jcmaster.c 4
/src/libjpeg-turbo/src/wrapper/../jutils.c 2
/src/libjpeg-turbo/src/wrapper/../jccolor.c 3
/src/libjpeg-turbo/simd/jsimd.c 20
/src/libjpeg-turbo/src/wrapper/../jcsample.c 3
/src/libjpeg-turbo/src/wrapper/../jcprepct.c 4
/src/libjpeg-turbo/src/wrapper/../jclossls.c 3
/src/libjpeg-turbo/src/jclhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jcdiffct.c 3
/src/libjpeg-turbo/src/wrapper/../jcdctmgr.c 2
/src/libjpeg-turbo/src/jcarith.c 1
/src/libjpeg-turbo/src/jcphuff.c 1
/src/libjpeg-turbo/src/jchuff.c 1
/src/libjpeg-turbo/src/wrapper/../jccoefct.c 2
/src/libjpeg-turbo/src/wrapper/../jcmainct.c 3
/src/libjpeg-turbo/src/jcmarker.c 1
/src/qpdf/include/qpdf/QIntC.hh 9
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/libjpeg-turbo/src/jdapimin.c 6
/src/libjpeg-turbo/src/jdmarker.c 2
/src/libjpeg-turbo/src/jdinput.c 1
/src/libjpeg-turbo/src/jdmaster.c 6
/src/libjpeg-turbo/src/wrapper/../jdapistd.c 3
/src/libjpeg-turbo/src/wrapper/../jquant1.c 8
/src/libjpeg-turbo/src/wrapper/../jquant2.c 3
/src/libjpeg-turbo/src/wrapper/../jdmerge.c 3
/src/libjpeg-turbo/src/wrapper/../jdcolor.c 5
/src/libjpeg-turbo/src/wrapper/../jdsample.c 3
/src/libjpeg-turbo/src/wrapper/../jdpostct.c 3
/src/libjpeg-turbo/src/wrapper/../jdlossls.c 3
/src/libjpeg-turbo/src/jdlhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jddiffct.c 3
/src/libjpeg-turbo/src/wrapper/../jddctmgr.c 2
/src/libjpeg-turbo/src/jdarith.c 1
/src/libjpeg-turbo/src/jdphuff.c 1
/src/libjpeg-turbo/src/jdhuff.c 1
/src/libjpeg-turbo/src/wrapper/../jdcoefct.c 2
/src/libjpeg-turbo/src/wrapper/../jdmainct.c 4

Fuzzer: lzw_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 20 27.3%
gold [1:9] 0 0.0%
yellow [10:29] 5 6.84%
greenyellow [30:49] 5 6.84%
lawngreen 50+ 43 58.9%
All colors 73 100

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 19 unsigned int QIntC::to_uint (unsigned long const&) call site: 00019 __cxa_allocate_exception
5 7 Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) call site: 00007 __cxa_allocate_exception
5 34 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00034 __cxa_allocate_exception
1 40 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00040
1 71 FuzzHelper::run() call site: 00071 __cxa_begin_catch

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
25
Reachable functions
80
Percentage of reachable functions covered
68.75%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/lzw_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_LZWDecoder.cc 7
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 3
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.hh 1

Fuzzer: runlength_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 45 45.9%
gold [1:9] 0 0.0%
yellow [10:29] 5 5.10%
greenyellow [30:49] 5 5.10%
lawngreen 50+ 43 43.8%
All colors 98 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 21 qpdf::global::Options::fuzz_mode(bool) call site: 00021 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
12 58 FuzzHelper::run() call site: 00058
11 39 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00039 __cxa_allocate_exception
2 78 FuzzHelper::run() call site: 00078
1 5 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00005
1 55 Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e) call site: 00055
1 96 FuzzHelper::run() call site: 00096 __cxa_begin_catch

Runtime coverage analysis

Covered functions
38
Functions that are reachable but not covered
45
Reachable functions
107
Percentage of reachable functions covered
57.94%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/runlength_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 10
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 3
/src/qpdf/libqpdf/Pl_RunLength.cc 7
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1

Fuzzer: future_pngpredictor_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 17 29.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 40 70.1%
All colors 57 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00007 __cxa_allocate_exception
5 13 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00013 __cxa_allocate_exception
4 31 Pl_PNGFilter::write(unsigned char const*, unsigned long) call site: 00031
2 54 Pl_Discard::~Pl_Discard() call site: 00054 __clang_call_terminate
1 49 FuzzHelper::run() call site: 00049 __cxa_end_catch

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
16
Reachable functions
73
Percentage of reachable functions covered
78.08%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/pngpredictor_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/libqpdf/qpdf/Util.hh 9
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1

Fuzzer: future_tiffpredictor_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 42 49.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 43 50.5%
All colors 85 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
13 35 unsigned int QIntC::to_uint (unsigned long const&) call site: 00035 __cxa_allocate_exception
10 50 BitStream::getBitsSigned(unsigned long) call site: 00050 __cxa_allocate_exception
5 7 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00007 __cxa_allocate_exception
5 13 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00013 __cxa_allocate_exception
5 63 BitWriter::writeBits(unsigned long long, unsigned long) call site: 00063 __cxa_allocate_exception
2 82 Pl_Discard::~Pl_Discard() call site: 00082 __clang_call_terminate
1 69 Pl_TIFFPredictor::processRow() call site: 00069
1 77 FuzzHelper::run() call site: 00077 __cxa_end_catch

Runtime coverage analysis

Covered functions
35
Functions that are reachable but not covered
30
Reachable functions
92
Percentage of reachable functions covered
67.39%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/tiffpredictor_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 7
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/BitStream.cc 3
/src/qpdf/include/qpdf/QIntC.hh 3
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/qpdf/bits_functions.hh 2
/src/qpdf/libqpdf/qpdf/Pl_TIFFPredictor.hh 1

Fuzzer: future_hex_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 7 18.9%
gold [1:9] 1 2.70%
yellow [10:29] 0 0.0%
greenyellow [30:49] 6 16.2%
lawngreen 50+ 23 62.1%
All colors 37 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 7 Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*) call site: 00007 __cxa_allocate_exception
1 31 FuzzHelper::run() call site: 00031
1 35 FuzzHelper::run() call site: 00035 __cxa_begin_catch

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
15
Reachable functions
42
Percentage of reachable functions covered
64.29%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/hex_fuzzer.cc 3
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/src/qpdf/libqpdf/Pl_ASCIIHexDecoder.cc 4
/src/qpdf/libqpdf/qpdf/Util.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh 1

Fuzzer: future_json_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2430 75.9%
gold [1:9] 31 0.96%
yellow [10:29] 44 1.37%
greenyellow [30:49] 27 0.84%
lawngreen 50+ 666 20.8%
All colors 3198 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
229 2731 std::__1::shared_ptr QPDFObject::create (bool&) call site: 02731 _ZN4qpdf7IntegerC2ITkNSt3__18integralEmEET_
200 2102 QUtil::hex_decode(std::__1::basic_string , std::__1::allocator > const&) call site: 02102 __cxa_allocate_exception
179 1681 std::__1::shared_ptr QPDFObject::create , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&&) call site: 01681 __cxa_guard_acquire
130 1934 QPDF::EncryptionParameters::initialize(QPDF&) call site: 01934 __cxa_allocate_exception
106 1513 QPDF::warn(qpdf_error_code_e, std::__1::basic_string , std::__1::allocator > const&, long long, std::__1::basic_string , std::__1::allocator > const&) call site: 01513 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
97 2490 QPDFObjectHandle::getObjectID() const call site: 02490 __cxa_allocate_exception
91 1418 QPDFObjectHandle::getIntValueAsInt() const call site: 01418 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralExEEv
77 850 QPDFObject::move_to(std::__1::shared_ptr &, bool) call site: 00850 __cxa_allocate_exception
73 1296 qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&) call site: 01296 __cxa_allocate_exception
64 1130 QPDFLogger::defaultLogger() call site: 01130 __cxa_end_catch
60 2311 QPDF::Doc::Objects::readTrailer() call site: 02311 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralEjEEv
53 1626 qpdf::BaseDictionary::replace(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle) call site: 01626 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
481
Functions that are reachable but not covered
817
Reachable functions
1544
Percentage of reachable functions covered
47.09%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/json_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 21
/src/qpdf/libqpdf/QUtil.cc 13
/src/qpdf/libqpdf/JSON.cc 28
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 37
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/include/qpdf/JSON.hh 7
/src/qpdf/libqpdf/QPDF.cc 24
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/QPDF_json.cc 5
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 26
/src/qpdf/libqpdf/QPDF_objects.cc 50
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 34
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 3
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 94
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 17
/src/qpdf/libqpdf/QPDFObjectHandle.cc 59
/src/qpdf/libqpdf/QPDF_Dictionary.cc 16
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 12
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 3
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6

Fuzzer: future_qpdf_outlines_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 577 15.9%
gold [1:9] 100 2.76%
yellow [10:29] 100 2.76%
greenyellow [30:49] 48 1.32%
lawngreen 50+ 2793 77.1%
All colors 3618 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 44 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00044 __cxa_allocate_exception
11 196 qpdf::Tokenizer::inBeforeToken(char) call site: 00196 __cxa_allocate_exception
11 1402 QPDF::decryptStream(std::__1::shared_ptr , std::__1::shared_ptr , QPDF&, Pipeline*&, QPDFObjGen, QPDFObjectHandle&, bool, std::__1::unique_ptr >&) call site: 01402
9 1292 qpdf::BaseDictionary::dict() const call site: 01292 __cxa_allocate_exception
9 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
8 71 unsigned long QIntC::to_size (long const&) call site: 00071 __cxa_allocate_exception
8 933 qpdf::Stream::Stream(std::__1::shared_ptr const&) call site: 00933 __cxa_allocate_exception
7 368 QPDF::warn(QPDFExc const&) call site: 00368 __cxa_allocate_exception
7 2518 QPDFObjectHandle::getKeys() const call site: 02518 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1058
Functions that are reachable but not covered
245
Reachable functions
1706
Percentage of reachable functions covered
85.64%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 25
/src/qpdf/libqpdf/QUtil.cc 25
/src/qpdf/libqpdf/QPDF.cc 23
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/QPDF_objects.cc 50
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 43
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 30
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 34
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 3
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 10
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 112
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 30
/src/qpdf/libqpdf/QPDFObjectHandle.cc 65
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 12
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 3
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 3
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 3
/src/qpdf/libqpdf/NNTree.cc 32
/src/qpdf/libqpdf/qpdf/NNTree.hh 15
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh 1

Fuzzer: future_qpdf_pages_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 939 16.4%
gold [1:9] 86 1.51%
yellow [10:29] 98 1.72%
greenyellow [30:49] 60 1.05%
lawngreen 50+ 4508 79.2%
All colors 5691 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 5297 (anonymous namespace)::JSONParser::getToken() call site: 05297 __cxa_allocate_exception
23 2451 qpdf::BaseHandle::copy(bool) const call site: 02451 __cxa_allocate_exception
19 4298 qpdf::Name::normalize(std::__1::basic_string , std::__1::allocator > const&) call site: 04298 __cxa_allocate_exception
19 5426 (anonymous namespace)::JSONParser::handleToken() call site: 05426 __cxa_allocate_exception
19 5511 (anonymous namespace)::JSONParser::handleToken() call site: 05511 __cxa_allocate_exception
17 28 qpdf::global::Options::fuzz_mode(bool) call site: 00028 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
14 4147 qpdf::Stream::copy_data_to(qpdf::Stream&) call site: 04147 __cxa_allocate_exception
13 5141 qpdf::BaseHandle::write_json(int, JSON::Writer&) const call site: 05141
11 46 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00046 __cxa_allocate_exception
11 199 qpdf::Tokenizer::inBeforeToken(char) call site: 00199 __cxa_allocate_exception
11 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
11 5379 (anonymous namespace)::JSONParser::getToken() call site: 05379 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1575
Functions that are reachable but not covered
257
Reachable functions
2350
Percentage of reachable functions covered
89.06%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_pages_fuzzer.cc 5
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 28
/src/qpdf/libqpdf/QUtil.cc 28
/src/qpdf/libqpdf/QPDF.cc 26
/src/qpdf/libqpdf/QPDFTokenizer.cc 44
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/include/qpdf/InputSource.hh 4
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 38
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 22
/src/qpdf/include/qpdf/ObjectHandle.hh 10
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 126
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 35
/src/qpdf/libqpdf/QPDFObjectHandle.cc 115
/src/qpdf/libqpdf/QPDF_Dictionary.cc 18
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/libqpdf/QPDF_Stream.cc 25
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 11
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc 4
/src/qpdf/libqpdf/NNTree.cc 40
/src/qpdf/libqpdf/qpdf/NNTree.hh 15
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 6
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh 3
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 5
/src/qpdf/include/qpdf/QPDFObjectHelper.hh 6
/src/qpdf/libqpdf/QPDFObjectHelper.cc 1
/src/qpdf/libqpdf/QPDFAcroFormDocumentHelper.cc 11
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc 10
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc 34
/src/qpdf/libqpdf/qpdf/AcroForm.hh 17
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh 3
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc 7
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc 3
/src/qpdf/libqpdf/BufferInputSource.cc 2
/src/qpdf/libqpdf/QPDF_String.cc 4
/src/qpdf/libqpdf/QPDFMatrix.cc 11
/src/qpdf/include/qpdf/QPDFNumberTreeObjectHelper.hh 1
/src/qpdf/libqpdf/JSON.cc 29
/src/qpdf/libqpdf/qpdf/JSON_writer.hh 8
/src/qpdf/include/qpdf/JSON.hh 5
/src/qpdf/libqpdf/Pl_String.cc 2
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh 1
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh 1

Fuzzer: json_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2430 75.9%
gold [1:9] 25 0.78%
yellow [10:29] 32 1.00%
greenyellow [30:49] 35 1.09%
lawngreen 50+ 676 21.1%
All colors 3198 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
229 2731 std::__1::shared_ptr QPDFObject::create (bool&) call site: 02731 _ZN4qpdf7IntegerC2ITkNSt3__18integralEmEET_
200 2102 QUtil::hex_decode(std::__1::basic_string , std::__1::allocator > const&) call site: 02102 __cxa_allocate_exception
179 1681 std::__1::shared_ptr QPDFObject::create , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&&) call site: 01681 __cxa_guard_acquire
130 1934 QPDF::EncryptionParameters::initialize(QPDF&) call site: 01934 __cxa_allocate_exception
106 1513 QPDF::warn(qpdf_error_code_e, std::__1::basic_string , std::__1::allocator > const&, long long, std::__1::basic_string , std::__1::allocator > const&) call site: 01513 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
97 2490 QPDFObjectHandle::getObjectID() const call site: 02490 __cxa_allocate_exception
91 1418 QPDFObjectHandle::getIntValueAsInt() const call site: 01418 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralExEEv
77 850 QPDFObject::move_to(std::__1::shared_ptr &, bool) call site: 00850 __cxa_allocate_exception
73 1296 qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&) call site: 01296 __cxa_allocate_exception
64 1130 QPDFLogger::defaultLogger() call site: 01130 __cxa_end_catch
60 2311 QPDF::Doc::Objects::readTrailer() call site: 02311 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralEjEEv
53 1626 qpdf::BaseDictionary::replace(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle) call site: 01626 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
480
Functions that are reachable but not covered
817
Reachable functions
1544
Percentage of reachable functions covered
47.09%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/json_fuzzer.cc 3
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 21
/src/qpdf/libqpdf/QUtil.cc 13
/src/qpdf/libqpdf/JSON.cc 28
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 37
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/include/qpdf/JSON.hh 7
/src/qpdf/libqpdf/QPDF.cc 24
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/QPDF_json.cc 5
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 26
/src/qpdf/libqpdf/QPDF_objects.cc 50
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 34
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 3
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 94
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 17
/src/qpdf/libqpdf/QPDFObjectHandle.cc 59
/src/qpdf/libqpdf/QPDF_Dictionary.cc 16
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 12
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 3
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6

Fuzzer: qpdf_pages_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 947 16.6%
gold [1:9] 87 1.52%
yellow [10:29] 95 1.66%
greenyellow [30:49] 99 1.73%
lawngreen 50+ 4463 78.4%
All colors 5691 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 5297 (anonymous namespace)::JSONParser::getToken() call site: 05297 __cxa_allocate_exception
23 2451 qpdf::BaseHandle::copy(bool) const call site: 02451 __cxa_allocate_exception
19 4298 qpdf::Name::normalize(std::__1::basic_string , std::__1::allocator > const&) call site: 04298 __cxa_allocate_exception
19 5426 (anonymous namespace)::JSONParser::handleToken() call site: 05426 __cxa_allocate_exception
19 5511 (anonymous namespace)::JSONParser::handleToken() call site: 05511 __cxa_allocate_exception
17 28 qpdf::global::Options::fuzz_mode(bool) call site: 00028 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
14 4147 qpdf::Stream::copy_data_to(qpdf::Stream&) call site: 04147 __cxa_allocate_exception
13 5141 qpdf::BaseHandle::write_json(int, JSON::Writer&) const call site: 05141
11 46 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00046 __cxa_allocate_exception
11 199 qpdf::Tokenizer::inBeforeToken(char) call site: 00199 __cxa_allocate_exception
11 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
11 4926 void QIntC::range_check_error (long long const&, long long const&) call site: 04926 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1592
Functions that are reachable but not covered
257
Reachable functions
2350
Percentage of reachable functions covered
89.06%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_pages_fuzzer.cc 5
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 28
/src/qpdf/libqpdf/QUtil.cc 28
/src/qpdf/libqpdf/QPDF.cc 26
/src/qpdf/libqpdf/QPDFTokenizer.cc 44
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/include/qpdf/InputSource.hh 4
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 38
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 22
/src/qpdf/include/qpdf/ObjectHandle.hh 10
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 126
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 35
/src/qpdf/libqpdf/QPDFObjectHandle.cc 115
/src/qpdf/libqpdf/QPDF_Dictionary.cc 18
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/libqpdf/QPDF_Stream.cc 25
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 11
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc 4
/src/qpdf/libqpdf/NNTree.cc 40
/src/qpdf/libqpdf/qpdf/NNTree.hh 15
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 6
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh 3
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 5
/src/qpdf/include/qpdf/QPDFObjectHelper.hh 6
/src/qpdf/libqpdf/QPDFObjectHelper.cc 1
/src/qpdf/libqpdf/QPDFAcroFormDocumentHelper.cc 11
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc 10
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc 34
/src/qpdf/libqpdf/qpdf/AcroForm.hh 17
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh 3
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc 7
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc 3
/src/qpdf/libqpdf/BufferInputSource.cc 2
/src/qpdf/libqpdf/QPDF_String.cc 4
/src/qpdf/libqpdf/QPDFMatrix.cc 11
/src/qpdf/include/qpdf/QPDFNumberTreeObjectHelper.hh 1
/src/qpdf/libqpdf/JSON.cc 29
/src/qpdf/libqpdf/qpdf/JSON_writer.hh 8
/src/qpdf/include/qpdf/JSON.hh 5
/src/qpdf/libqpdf/Pl_String.cc 2
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh 1
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh 1

Fuzzer: future_qpdf_crypt_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 992 20.3%
gold [1:9] 97 1.99%
yellow [10:29] 98 2.01%
greenyellow [30:49] 48 0.98%
lawngreen 50+ 3631 74.6%
All colors 4866 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
85 4750 qpdf::impl::Writer::write() call site: 04750 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
46 2974 qpdf::impl::Writer::doWriteSetup() call site: 02974
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
26 2863 qpdf::impl::Writer::generateID(bool) call site: 02863 __cxa_allocate_exception
18 3548 qpdf::impl::Writer::writeLinearized() call site: 03548 fopen
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
17 4233 qpdf::BaseHandle::unparse() const call site: 04233 __cxa_allocate_exception
16 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
16 2912 qpdf::impl::Writer::setEncryptionParameters(char const*, char const*) call site: 02912 __cxa_allocate_exception
16 3021 qpdf::impl::Writer::doWriteSetup() call site: 03021
15 3800 deflate call site: 03800 crc32

Runtime coverage analysis

Covered functions
1396
Functions that are reachable but not covered
368
Reachable functions
2208
Percentage of reachable functions covered
83.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 50
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 87
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: qpdf_outlines_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 583 16.1%
gold [1:9] 111 3.06%
yellow [10:29] 63 1.74%
greenyellow [30:49] 50 1.38%
lawngreen 50+ 2811 77.6%
All colors 3618 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 44 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00044 __cxa_allocate_exception
11 196 qpdf::Tokenizer::inBeforeToken(char) call site: 00196 __cxa_allocate_exception
9 1292 qpdf::BaseDictionary::dict() const call site: 01292 __cxa_allocate_exception
9 2417 qpdf::BaseHandle::copy(bool) const call site: 02417
9 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
8 71 unsigned long QIntC::to_size (long const&) call site: 00071 __cxa_allocate_exception
8 933 qpdf::Stream::Stream(std::__1::shared_ptr const&) call site: 00933 __cxa_allocate_exception
8 1405 QPDF::decryptStream(std::__1::shared_ptr , std::__1::shared_ptr , QPDF&, Pipeline*&, QPDFObjGen, QPDFObjectHandle&, bool, std::__1::unique_ptr >&) call site: 01405
7 368 QPDF::warn(QPDFExc const&) call site: 00368 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1052
Functions that are reachable but not covered
249
Reachable functions
1706
Percentage of reachable functions covered
85.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 25
/src/qpdf/libqpdf/QUtil.cc 25
/src/qpdf/libqpdf/QPDF.cc 23
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/QPDF_objects.cc 50
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 43
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 5
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 30
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 34
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 3
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 10
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 112
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 30
/src/qpdf/libqpdf/QPDFObjectHandle.cc 65
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 12
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 2
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 1
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 42
/src/qpdf/libqpdf/MD5.cc 5
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 3
/src/qpdf/libqpdf/Pl_AES_PDF.cc 7
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 3
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 3
/src/qpdf/libqpdf/NNTree.cc 32
/src/qpdf/libqpdf/qpdf/NNTree.hh 15
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh 1

Fuzzer: qpdf_lin_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1037 21.5%
gold [1:9] 121 2.51%
yellow [10:29] 73 1.51%
greenyellow [30:49] 55 1.14%
lawngreen 50+ 3528 73.2%
All colors 4814 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
85 4699 qpdf::impl::Writer::write() call site: 04699 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4476 qpdf::impl::Writer::writeLinearized() call site: 04476 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
25 3033 ObjTable ::large_element(unsigned long) call site: 03033
22 4252 qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool) call site: 04252
18 3497 qpdf::impl::Writer::writeLinearized() call site: 03497 fopen
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
17 4182 qpdf::BaseHandle::unparse() const call site: 04182 __cxa_allocate_exception
16 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
16 2970 qpdf::impl::Writer::doWriteSetup() call site: 02970
15 3749 deflate call site: 03749 crc32

Runtime coverage analysis

Covered functions
1391
Functions that are reachable but not covered
362
Reachable functions
2190
Percentage of reachable functions covered
83.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_lin_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 44
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 85
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: future_qpdf_crypt_insecure_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1682 34.5%
gold [1:9] 109 2.24%
yellow [10:29] 91 1.87%
greenyellow [30:49] 33 0.67%
lawngreen 50+ 2949 60.6%
All colors 4864 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
237 3266 qpdf::impl::Writer::write() call site: 03266 __assert_fail
79 4564 qpdf::impl::Writer::writeEncryptionDictionary() call site: 04564 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_
73 3082 ObjTable ::large_element(unsigned long) call site: 03082
57 4469 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04469 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEmEERS1_T_
47 4755 qpdf::impl::Writer::writeStandard() call site: 04755 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
46 2972 qpdf::impl::Writer::doWriteSetup() call site: 02972
39 4680 BitWriter::flush() call site: 04680
35 4406 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04406 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4649 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04649 __cxa_allocate_exception
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
29 3544 (anonymous namespace)::Pl_stack::popper() call site: 03544 fopen

Runtime coverage analysis

Covered functions
1307
Functions that are reachable but not covered
515
Reachable functions
2206
Percentage of reachable functions covered
76.65%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 50
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 86
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: qpdf_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1483 30.8%
gold [1:9] 93 1.93%
yellow [10:29] 61 1.26%
greenyellow [30:49] 87 1.80%
lawngreen 50+ 3088 64.1%
All colors 4812 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
226 3214 qpdf::impl::Writer::write() call site: 03214 __assert_fail
120 4471 qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle) call site: 04471 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
81 3736 Pl_Flate::checkError(char const*, int) call site: 03736 deflate
47 4703 qpdf::impl::Writer::writeStandard() call site: 04703 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
41 2912 qpdf::impl::Writer::generateID(bool) call site: 02912
39 4628 BitWriter::flush() call site: 04628
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4597 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04597 __cxa_allocate_exception
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
27 4668 qpdf::pl::Count::~Count() call site: 04668 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
23 3492 (anonymous namespace)::Pl_stack::popper() call site: 03492 fopen
23 3541 qpdf::impl::Writer::openObject(int) call site: 03541 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_

Runtime coverage analysis

Covered functions
1336
Functions that are reachable but not covered
461
Reachable functions
2186
Percentage of reachable functions covered
78.91%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 44
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 83
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: future_qpdf_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1472 30.5%
gold [1:9] 114 2.36%
yellow [10:29] 52 1.08%
greenyellow [30:49] 81 1.68%
lawngreen 50+ 3093 64.2%
All colors 4812 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
226 3214 qpdf::impl::Writer::write() call site: 03214 __assert_fail
120 4471 qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle) call site: 04471 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
81 3736 Pl_Flate::checkError(char const*, int) call site: 03736 deflate
47 4703 qpdf::impl::Writer::writeStandard() call site: 04703 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
41 2912 qpdf::impl::Writer::generateID(bool) call site: 02912
39 4628 BitWriter::flush() call site: 04628
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4597 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04597 __cxa_allocate_exception
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
27 4668 qpdf::pl::Count::~Count() call site: 04668 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
23 3492 (anonymous namespace)::Pl_stack::popper() call site: 03492 fopen
23 3541 qpdf::impl::Writer::openObject(int) call site: 03541 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_

Runtime coverage analysis

Covered functions
1338
Functions that are reachable but not covered
465
Reachable functions
2186
Percentage of reachable functions covered
78.73%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 44
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 83
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: qpdf_crypt_insecure_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1680 34.5%
gold [1:9] 102 2.09%
yellow [10:29] 88 1.80%
greenyellow [30:49] 79 1.62%
lawngreen 50+ 2915 59.9%
All colors 4864 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
237 3266 qpdf::impl::Writer::write() call site: 03266 __assert_fail
79 4564 qpdf::impl::Writer::writeEncryptionDictionary() call site: 04564 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_
73 3082 ObjTable ::large_element(unsigned long) call site: 03082
57 4469 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04469 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEmEERS1_T_
47 4755 qpdf::impl::Writer::writeStandard() call site: 04755 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
46 2972 qpdf::impl::Writer::doWriteSetup() call site: 02972
39 4680 BitWriter::flush() call site: 04680
35 4406 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04406 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4649 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04649 __cxa_allocate_exception
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
29 3544 (anonymous namespace)::Pl_stack::popper() call site: 03544 fopen

Runtime coverage analysis

Covered functions
1304
Functions that are reachable but not covered
511
Reachable functions
2206
Percentage of reachable functions covered
76.84%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 50
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 86
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: qpdf_crypt_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 994 20.4%
gold [1:9] 106 2.17%
yellow [10:29] 82 1.68%
greenyellow [30:49] 76 1.56%
lawngreen 50+ 3608 74.1%
All colors 4866 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
85 4750 qpdf::impl::Writer::write() call site: 04750 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
46 2974 qpdf::impl::Writer::doWriteSetup() call site: 02974
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
26 2863 qpdf::impl::Writer::generateID(bool) call site: 02863 __cxa_allocate_exception
18 3548 qpdf::impl::Writer::writeLinearized() call site: 03548 fopen
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
17 4233 qpdf::BaseHandle::unparse() const call site: 04233 __cxa_allocate_exception
16 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
16 2912 qpdf::impl::Writer::setEncryptionParameters(char const*, char const*) call site: 02912 __cxa_allocate_exception
16 3021 qpdf::impl::Writer::doWriteSetup() call site: 03021
15 3800 deflate call site: 03800 crc32

Runtime coverage analysis

Covered functions
1393
Functions that are reachable but not covered
368
Reachable functions
2208
Percentage of reachable functions covered
83.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 50
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 87
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Fuzzer: future_qpdf_lin_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1029 21.3%
gold [1:9] 117 2.43%
yellow [10:29] 93 1.93%
greenyellow [30:49] 70 1.45%
lawngreen 50+ 3505 72.8%
All colors 4814 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
85 4699 qpdf::impl::Writer::write() call site: 04699 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4476 qpdf::impl::Writer::writeLinearized() call site: 04476 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1247 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01247 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
29 2442 qpdf::BaseHandle::copy(bool) const call site: 02442 __cxa_allocate_exception
25 3033 ObjTable ::large_element(unsigned long) call site: 03033
22 4252 qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool) call site: 04252
18 3497 qpdf::impl::Writer::writeLinearized() call site: 03497 fopen
17 26 qpdf::global::Options::fuzz_mode(bool) call site: 00026 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
17 4182 qpdf::BaseHandle::unparse() const call site: 04182 __cxa_allocate_exception
16 2787 QPDF::Doc::Objects::parse(char const*) call site: 02787 __cxa_begin_catch
16 2970 qpdf::impl::Writer::doWriteSetup() call site: 02970
15 3749 deflate call site: 03749 crc32

Runtime coverage analysis

Covered functions
1395
Functions that are reachable but not covered
362
Reachable functions
2190
Percentage of reachable functions covered
83.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_lin_fuzzer.cc 4
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 39
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/QPDF.cc 30
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/include/qpdf/QIntC.hh 47
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 6
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/qpdf/InputSource_private.hh 9
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 35
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 5
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 13
/src/qpdf/include/qpdf/ObjectHandle.hh 9
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 105
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 25
/src/qpdf/libqpdf/QPDFObjectHandle.cc 72
/src/qpdf/libqpdf/QPDF_Dictionary.cc 17
/src/qpdf/libqpdf/QPDFObject.cc 1
/src/qpdf/libqpdf/Pl_OStream.cc 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/libqpdf/QPDF_Stream.cc 20
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 15
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh 2
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh 1
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh 1
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh 3
/src/qpdf/libqpdf/Pl_Flate.cc 9
/src/qpdf/libqpdf/Pl_Count.cc 3
/src/qpdf/libqpdf/QPDF_encryption.cc 44
/src/qpdf/libqpdf/MD5.cc 7
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 3
/src/qpdf/libqpdf/RC4.cc 3
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.cc 4
/src/qpdf/libqpdf/Pl_Buffer.cc 4
/src/qpdf/libqpdf/Pl_AES_PDF.cc 8
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc 1
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh 1
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh 1
/src/qpdf/libqpdf/QPDF_pages.cc 6
/src/qpdf/libqpdf/QPDFWriter.cc 85
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 27
/src/qpdf/libqpdf/QPDFUsage.cc 1
/src/qpdf/include/qpdf/QPDFUsage.hh 1
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/QPDF_linearization.cc 24
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh 3
/src/qpdf/libqpdf/Pl_PNGFilter.cc 12
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh 1
/src/zlib/deflate.c 16
/src/zlib/crc32.c 5
/src/zlib/adler32.c 2
/src/zlib/trees.c 20
/src/zlib/inflate.c 9
/src/zlib/inftrees.c 2
/src/zlib/inffast.c 1
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/Pl_RC4.cc 3
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1
/src/qpdf/include/qpdf/QPDFWriter.hh 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
QPDF::showLinearizationData() /src/qpdf/libqpdf/QPDF_linearization.cc 1 ['N/A'] 46 0 18 3 2 1556 0 9556 1386
QPDFPageObjectHelper::flattenRotation(QPDFAcroFormDocumentHelper*) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 48 0 1100 194 146 1986 0 11569 1253
encode_mcu_huff /src/libjpeg-turbo/src/jchuff.c 2 ['N/A', 'N/A'] 3 0 228 33 14 5 0 592 592
QPDF::JSONReactor::dictionaryItem(std::__1::basic_string ,std::__1::allocator >const&,JSONconst&) /src/qpdf/libqpdf/QPDF_json.cc 3 ['N/A', 'N/A', 'N/A'] 44 0 1323 238 227 1527 0 8739 514
JSON::checkSchemaInternal(JSON::JSON_value*,JSON::JSON_value*,unsignedlong,std::__1::list ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>&,std::__1::basic_string ,std::__1::allocator >) /src/qpdf/libqpdf/JSON.cc 5 ['N/A', 'N/A', 'size_t', 'N/A', 'N/A'] 2 0 881 159 135 9 3 291 287
QPDF::writeJSON(int,Pipeline*,qpdf_stream_decode_level_e,qpdf_json_stream_data_e,std::__1::basic_string ,std::__1::allocator >const&,std::__1::set ,std::__1::allocator >,std::__1::less ,std::__1::allocator >>,std::__1::allocator ,std::__1::allocator >>>) /src/qpdf/libqpdf/QPDF_json.cc 7 ['N/A', 'int', 'N/A', 'int', 'int', 'N/A', 'N/A'] 41 0 57 6 6 1514 0 8687 281
(anonymousnamespace)::InlineImageTracker::handleToken(QPDFTokenizer::Tokenconst&) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 43 0 373 68 52 1421 0 8356 267

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
55.0%
1954 / 3565
Cyclomatic complexity statically reachable by fuzzers
71.0%
25615 / 36167

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/qpdf/fuzz/ascii85_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*)', 'FuzzHelper::run()', 'FuzzHelper::run()']

/src/qpdf/fuzz/flate_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


/src/qpdf/fuzz/ascii85_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*)', 'FuzzHelper::run()', 'FuzzHelper::run()']

/src/qpdf/fuzz/runlength_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::global::Options::fuzz_mode(bool)', 'FuzzHelper::run()', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'FuzzHelper::run()', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e)', 'FuzzHelper::run()']

/src/qpdf/fuzz/tiffpredictor_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['unsigned int QIntC::to_uint(unsigned long const&)', 'BitStream::getBitsSigned(unsigned long)', 'Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'Pl_Discard::~Pl_Discard()', 'Pl_TIFFPredictor::processRow()', 'FuzzHelper::run()']

/src/qpdf/fuzz/flate_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['deflate', 'qpdf::global::Options::fuzz_mode(bool)', 'deflateResetKeep', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'unsigned long QIntC::to_size(unsigned int const&)', 'deflateReset', 'Pl_Flate::finish()', 'unsigned long QIntC::to_ulong(unsigned long const&)']

/src/qpdf/fuzz/pngpredictor_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_PNGFilter::write(unsigned char const*, unsigned long)', 'Pl_Discard::~Pl_Discard()', 'FuzzHelper::run()']

/src/qpdf/fuzz/hex_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*)', 'FuzzHelper::run()', 'FuzzHelper::run()']

/src/qpdf/fuzz/lzw_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['unsigned int QIntC::to_uint(unsigned long const&)', 'Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'FuzzHelper::run()']

/src/qpdf/fuzz/dct_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['init_simd', 'std_huff_tables', 'unsigned int QIntC::to_uint(int const&)', 'master_selection', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'jinit_memory_mgr', 'jpeg_core_output_dimensions', 'jpeg_calc_output_dimensions', 'Pl_DCT::finish()']

/src/qpdf/fuzz/dct_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['init_simd', 'std_huff_tables', 'unsigned int QIntC::to_uint(int const&)', 'master_selection', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'jinit_memory_mgr', 'jpeg_core_output_dimensions', 'jpeg_calc_output_dimensions', 'Pl_DCT::finish()']

/src/qpdf/fuzz/lzw_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['unsigned int QIntC::to_uint(unsigned long const&)', 'Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'FuzzHelper::run()']

/src/qpdf/fuzz/runlength_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::global::Options::fuzz_mode(bool)', 'FuzzHelper::run()', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'FuzzHelper::run()', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e)', 'FuzzHelper::run()']

/src/qpdf/fuzz/pngpredictor_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_PNGFilter::write(unsigned char const*, unsigned long)', 'Pl_Discard::~Pl_Discard()', 'FuzzHelper::run()']

/src/qpdf/fuzz/tiffpredictor_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['unsigned int QIntC::to_uint(unsigned long const&)', 'BitStream::getBitsSigned(unsigned long)', 'Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'Pl_Discard::~Pl_Discard()', 'Pl_TIFFPredictor::processRow()', 'FuzzHelper::run()']

/src/qpdf/fuzz/hex_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*)', 'FuzzHelper::run()', 'FuzzHelper::run()']

/src/qpdf/fuzz/json_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['std::__1::shared_ptr QPDFObject::create(bool&)', 'QUtil::hex_decode(std::__1::basic_string, std::__1::allocator > const&)', 'std::__1::shared_ptr QPDFObject::create, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator >&&)', 'QPDF::EncryptionParameters::initialize(QPDF&)', 'QPDF::warn(qpdf_error_code_e, std::__1::basic_string, std::__1::allocator > const&, long long, std::__1::basic_string, std::__1::allocator > const&)', 'QPDFObjectHandle::getObjectID() const', 'QPDFObjectHandle::getIntValueAsInt() const', 'QPDFObject::move_to(std::__1::shared_ptr&, bool)', 'qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&)', 'QPDFLogger::defaultLogger()']

/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::Tokenizer::inBeforeToken(char)', 'QPDF::decryptStream(std::__1::shared_ptr, std::__1::shared_ptr, QPDF&, Pipeline*&, QPDFObjGen, QPDFObjectHandle&, bool, std::__1::unique_ptr >&)', 'qpdf::BaseDictionary::dict() const', 'QPDF::Doc::Objects::parse(char const*)', 'unsigned long QIntC::to_size(long const&)', 'qpdf::Stream::Stream(std::__1::shared_ptr const&)']

/src/qpdf/fuzz/qpdf_pages_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['(anonymous namespace)::JSONParser::getToken()', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::Name::normalize(std::__1::basic_string, std::__1::allocator > const&)', '(anonymous namespace)::JSONParser::handleToken()', '(anonymous namespace)::JSONParser::handleToken()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::Stream::copy_data_to(qpdf::Stream&)', 'qpdf::BaseHandle::write_json(int, JSON::Writer&) const', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::Tokenizer::inBeforeToken(char)']

/src/qpdf/fuzz/json_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['std::__1::shared_ptr QPDFObject::create(bool&)', 'QUtil::hex_decode(std::__1::basic_string, std::__1::allocator > const&)', 'std::__1::shared_ptr QPDFObject::create, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator >&&)', 'QPDF::EncryptionParameters::initialize(QPDF&)', 'QPDF::warn(qpdf_error_code_e, std::__1::basic_string, std::__1::allocator > const&, long long, std::__1::basic_string, std::__1::allocator > const&)', 'QPDFObjectHandle::getObjectID() const', 'QPDFObjectHandle::getIntValueAsInt() const', 'QPDFObject::move_to(std::__1::shared_ptr&, bool)', 'qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&)', 'QPDFLogger::defaultLogger()']

/src/qpdf/fuzz/qpdf_pages_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['(anonymous namespace)::JSONParser::getToken()', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::Name::normalize(std::__1::basic_string, std::__1::allocator > const&)', '(anonymous namespace)::JSONParser::handleToken()', '(anonymous namespace)::JSONParser::handleToken()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::Stream::copy_data_to(qpdf::Stream&)', 'qpdf::BaseHandle::write_json(int, JSON::Writer&) const', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::Tokenizer::inBeforeToken(char)']

/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::doWriteSetup()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::impl::Writer::generateID(bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)', 'qpdf::impl::Writer::setEncryptionParameters(char const*, char const*)']

/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::Tokenizer::inBeforeToken(char)', 'qpdf::BaseDictionary::dict() const', 'qpdf::BaseHandle::copy(bool) const', 'QPDF::Doc::Objects::parse(char const*)', 'unsigned long QIntC::to_size(long const&)', 'qpdf::Stream::Stream(std::__1::shared_ptr const&)']

/src/qpdf/fuzz/qpdf_lin_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'ObjTable::large_element(unsigned long)', 'qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)']

/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeEncryptionDictionary()', 'ObjTable::large_element(unsigned long)', 'qpdf::impl::Writer::writeObject(QPDFObjectHandle, int)', 'qpdf::impl::Writer::writeStandard()', 'qpdf::impl::Writer::doWriteSetup()', 'BitWriter::flush()', 'qpdf::impl::Writer::writeObject(QPDFObjectHandle, int)', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'BitWriter::writeBits(unsigned long long, unsigned long)']

/src/qpdf/fuzz/qpdf_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle)', 'Pl_Flate::checkError(char const*, int)', 'qpdf::impl::Writer::writeStandard()', 'qpdf::impl::Writer::generateID(bool)', 'BitWriter::flush()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::pl::Count::~Count()']

/src/qpdf/fuzz/qpdf_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle)', 'Pl_Flate::checkError(char const*, int)', 'qpdf::impl::Writer::writeStandard()', 'qpdf::impl::Writer::generateID(bool)', 'BitWriter::flush()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::pl::Count::~Count()']

/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeEncryptionDictionary()', 'ObjTable::large_element(unsigned long)', 'qpdf::impl::Writer::writeObject(QPDFObjectHandle, int)', 'qpdf::impl::Writer::writeStandard()', 'qpdf::impl::Writer::doWriteSetup()', 'BitWriter::flush()', 'qpdf::impl::Writer::writeObject(QPDFObjectHandle, int)', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'BitWriter::writeBits(unsigned long long, unsigned long)']

/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::doWriteSetup()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::impl::Writer::generateID(bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)', 'qpdf::impl::Writer::setEncryptionParameters(char const*, char const*)']

/src/qpdf/fuzz/qpdf_lin_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['qpdf::impl::Writer::write()', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'qpdf::BaseHandle::copy(bool) const', 'ObjTable::large_element(unsigned long)', 'qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::global::Options::fuzz_mode(bool)', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
qpdf_global_set_uint32 54 7 12.96% ['flate_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_runlength_fuzzer', 'future_dct_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_crypt_fuzzer', 'future_json_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'qpdf_outlines_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'runlength_fuzzer']
Pl_Flate::checkError(charconst*,int) 35 17 48.57% ['qpdf_outlines_fuzzer', 'flate_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_crypt_fuzzer', 'future_flate_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_outlines_fuzzer']
deflate 257 73 28.40% ['flate_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_crypt_fuzzer', 'future_flate_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer']
output_pass_setup 45 10 22.22% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
start_pass 173 39 22.54% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
jinit_color_deconverter 236 111 47.03% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
j12init_color_deconverter 227 107 47.13% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
j16init_color_deconverter 227 94 41.40% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
jpeg_resync_to_restart 34 6 17.64% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
jpeg_core_output_dimensions 130 32 24.61% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
use_merged_upsample 38 6 15.78% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
jinit_d_post_controller 39 20 51.28% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
j12init_d_post_controller 40 20 50.0% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
access_virt_sarray 59 31 52.54% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_fuzzer']
qpdf::BaseHandle::unparse()const 73 16 21.91% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer']
qpdf::impl::Writer::interpretR3EncryptionParameters(bool,bool,bool,bool,bool,bool,qpdf_r3_print_e,qpdf_r3_modify_e) 46 16 34.78% ['future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/qpdf/libqpdf/qpdf/SecureRandomDataProvider.hh [] []
/src/qpdf/libqpdf/Pl_PNGFilter.cc ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_RC4.cc ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFParser.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc ['future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_insecure_fuzzer'] ['future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_insecure_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jutils.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/fuzz/qpdf_fuzzer.cc ['qpdf_fuzzer', 'future_qpdf_fuzzer'] ['qpdf_fuzzer', 'future_qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_ASCIIHexDecoder.cc ['hex_fuzzer', 'future_hex_fuzzer'] ['hex_fuzzer', 'future_hex_fuzzer']
/src/qpdf/libqpdf/RC4.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jcapimin.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jcapistd.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/SHA2_native.cc [] []
/src/qpdf/libqpdf/sph/md_helper.c [] []
/src/qpdf/libqpdf/RC4_native.cc [] []
/src/libjpeg-turbo/src/wrapper/../jcdiffct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/QPDF_String.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/runlength_fuzzer.cc ['future_runlength_fuzzer', 'runlength_fuzzer'] ['future_runlength_fuzzer', 'runlength_fuzzer']
/src/qpdf/libqpdf/qpdf/Util.hh ['ascii85_fuzzer', 'flate_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/sph/sph_types.h [] []
/src/qpdf/libqpdf/QPDFExc.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/RC4.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/libqpdf/qpdf/AcroForm.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jccoefct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/zlib/inflate.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/MD5.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jcmaster.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/QPDF_json.cc ['future_json_fuzzer', 'json_fuzzer'] ['future_json_fuzzer', 'json_fuzzer']
/src/libjpeg-turbo/src/jcparam.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/zlib/trees.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jclossls.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/jmemmgr.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/include/qpdf/QPDFTokenizer.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/simd/jsimd.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/Pl_String.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctint.c [] []
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/dct_fuzzer.cc ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.hh ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFCrypto_native.hh [] []
/src/qpdf/libqpdf/QPDFLogger.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jfdctint.c [] []
/src/qpdf/libqpdf/PDFVersion.cc [] []
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh ['hex_fuzzer', 'future_hex_fuzzer'] []
/src/libjpeg-turbo/src/jdmarker.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/QPDFObjectHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFObject.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFUsage.cc ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jchuff.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/jdarith.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jquant1.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFAcroFormDocumentHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jclhuff.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFObjectHandle.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jcsample.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/usr/local/bin/../include/c++/v1/sstream ['flate_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/libqpdf/sha2.c [] []
/src/qpdf/libqpdf/QPDFCrypto_native.cc [] []
/src/libjpeg-turbo/src/jcarith.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jdcoefct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/InputSource.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/FileInputSource.cc [] []
/src/qpdf/libqpdf/qpdf/QPDF_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFNumberTreeObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/Pl_Buffer.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFWriter.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jdphuff.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jquant2.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jcphuff.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/jdinput.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/QPDFWriter.cc ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/BufferInputSource.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jdlhuff.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/usr/local/bin/../include/c++/v1/stdexcept ['flate_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/libqpdf/sha2big.c [] []
/src/qpdf/libqpdf/qpdf/Pl_ASCII85Decoder.hh ['ascii85_fuzzer', 'future_ascii85_fuzzer'] []
/src/qpdf/libqpdf/Pl_Base64.cc [] []
/src/libjpeg-turbo/src/wrapper/../jdapistd.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFObjectHandle.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/global.hh ['flate_fuzzer', 'future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_Concatenate.cc [] []
/src/qpdf/include/qpdf/QPDFExc.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFCryptoProvider.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdsample.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/BitStream.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctflt.c [] []
/src/qpdf/libqpdf/Pl_StdioFile.cc [] []
/src/qpdf/include/qpdf/QPDFCryptoImpl.hh [] []
/src/libjpeg-turbo/src/jdapimin.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/libqpdf/Buffer.cc ['future_lzw_fuzzer', 'lzw_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/global.cc ['flate_fuzzer', 'future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/AES_PDF_native.hh [] []
/src/libjpeg-turbo/src/wrapper/../jidctred.c [] []
/src/zlib/inffast.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jfdctflt.c [] []
/src/libjpeg-turbo/src/wrapper/../jdmrgext.c [] []
/src/qpdf/fuzz/ascii85_fuzzer.cc ['ascii85_fuzzer', 'future_ascii85_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer']
/src/qpdf/libqpdf/qpdf/JSON_writer.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_TIFFPredictor.hh ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/zlib/adler32.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDF_Stream.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/MD5.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFObjGen.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/flate_fuzzer.cc ['flate_fuzzer', 'future_flate_fuzzer'] ['future_flate_fuzzer']
/src/qpdf/include/qpdf/InputSource.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_Count.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFUsage.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jccolor.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/fuzz/qpdf_lin_fuzzer.cc ['qpdf_lin_fuzzer', 'future_qpdf_lin_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_Discard.cc ['ascii85_fuzzer', 'flate_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctfst.c [] []
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFSystemError.cc ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/NNTree.hh ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/libqpdf/QUtil.cc ['flate_fuzzer', 'future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_runlength_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_DCT.cc ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/libjpeg-turbo/src/jerror.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/include/qpdf/QPDFXRefEntry.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_SHA2.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/bits_functions.hh ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jcdctmgr.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QTC.hh ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'tiffpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdmainct.h [] []
/src/libjpeg-turbo/src/jcmarker.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jccolext.c [] []
/src/qpdf/libqpdf/qpdf/ResourceFinder.hh [] []
/src/qpdf/libqpdf/JSON.cc ['future_json_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer'] ['future_json_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDF_Dictionary.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/qpdf_pages_fuzzer.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jfdctfst.c [] []
/src/qpdf/include/qpdf/Pl_DCT.hh [] []
/src/qpdf/libqpdf/Pl_LZWDecoder.cc ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/libjpeg-turbo/src/jdhuff.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/fuzz/pngpredictor_fuzzer.cc ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer']
/src/libjpeg-turbo/src/jdmaster.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/zlib/inftrees.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jddctmgr.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFDocumentHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDF_Array.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/NNTree.cc ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/Pl_Flate.cc ['flate_fuzzer', 'future_flate_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_flate_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDF_objects.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDF_pages.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/AES_PDF_native.cc [] []
/src/libjpeg-turbo/src/wrapper/../jdlossls.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jcmainct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/BitWriter.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFParser.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/SecureRandomDataProvider.cc [] []
/src/qpdf/fuzz/hex_fuzzer.cc ['hex_fuzzer', 'future_hex_fuzzer'] ['hex_fuzzer', 'future_hex_fuzzer']
/src/libjpeg-turbo/src/jstdhuff.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jddiffct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/rijndael.cc [] []
/src/qpdf/include/qpdf/QPDFObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/ResourceFinder.cc [] []
/src/qpdf/libqpdf/ContentNormalizer.cc [] []
/src/zlib/crc32.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/include/qpdf/QPDFLogger.hh [] []
/src/qpdf/include/qpdf/Pipeline.hh ['ascii85_fuzzer', 'flate_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/tiffpredictor_fuzzer.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jcomapi.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/qpdf/libqpdf/QPDF.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/OffsetInputSource.cc [] []
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/RandomDataProvider.hh [] []
/src/libjpeg-turbo/src/wrapper/../jcprepct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jdmerge.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/SF_FlateLzwDecode.cc [] []
/src/qpdf/libqpdf/qpdf/ObjTable.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/Pl_OStream.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/JSON.hh ['future_json_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer'] ['future_json_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer']
/usr/local/bin/../include/c++/v1/variant [] []
/src/qpdf/libqpdf/Pipeline.cc ['ascii85_fuzzer', 'flate_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'pngpredictor_fuzzer', 'hex_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'runlength_fuzzer', 'future_pngpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_hex_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFSystemError.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDF_encryption.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFTokenizer.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFMatrix.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdpostct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFStreamFilter.hh [] []
/src/qpdf/libqpdf/qpdf/Pl_Base64.hh [] []
/src/qpdf/include/qpdf/QIntC.hh ['flate_fuzzer', 'tiffpredictor_fuzzer', 'future_flate_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['tiffpredictor_fuzzer', 'future_flate_fuzzer', 'future_lzw_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/src/qpdf/libqpdf/qpdf/global_private.hh ['flate_fuzzer', 'future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['flate_fuzzer', 'future_runlength_fuzzer', 'future_flate_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer', 'runlength_fuzzer', 'future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/CryptoRandomDataProvider.hh [] []
/src/libjpeg-turbo/src/wrapper/../jdmainct.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/zlib/deflate.c ['flate_fuzzer', 'future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_flate_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/fuzz/json_fuzzer.cc ['future_json_fuzzer', 'json_fuzzer'] ['future_json_fuzzer', 'json_fuzzer']
/usr/local/bin/../include/c++/v1/__exception/exception.h ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] []
/src/qpdf/libqpdf/Pl_AES_PDF.cc ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/jmemnobs.c ['future_dct_fuzzer', 'dct_fuzzer'] ['future_dct_fuzzer', 'dct_fuzzer']
/src/libjpeg-turbo/src/jcinit.c ['future_dct_fuzzer', 'dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/OffsetInputSource.hh [] []
/src/qpdf/libqpdf/Pl_RunLength.cc ['future_runlength_fuzzer', 'runlength_fuzzer'] ['future_runlength_fuzzer', 'runlength_fuzzer']
/src/qpdf/include/qpdf/ObjectHandle.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFStreamFilter.cc [] []
/usr/local/bin/../include/c++/v1/optional [] []
/usr/local/bin/../include/c++/v1/__iterator/move_iterator.h [] []
/src/libjpeg-turbo/src/wrapper/../jdcolext.c [] []
/src/qpdf/libqpdf/Pl_ASCII85Decoder.cc ['ascii85_fuzzer', 'future_ascii85_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer']
/src/qpdf/libqpdf/MD5_native.cc [] []
/src/qpdf/include/qpdf/QUtil.hh ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer'] ['future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/libqpdf/qpdf/InputSource_private.hh ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_json_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_pages_fuzzer', 'json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/zlib/zutil.c [] []
/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_fuzzer']
/src/qpdf/fuzz/lzw_fuzzer.cc ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/qpdf/libqpdf/QPDF_linearization.cc ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer'] ['future_qpdf_crypt_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdcolor.c ['future_dct_fuzzer', 'dct_fuzzer'] []

Directories in report

Directory
/usr/local/bin/../include/c++/v1/__exception/
/src/qpdf/fuzz/
/src/qpdf/include/qpdf/
/src/libjpeg-turbo/simd/
/usr/local/bin/../include/c++/v1/__iterator/
/src/libjpeg-turbo/src/wrapper/../
/src/qpdf/libqpdf/sph/
/src/qpdf/libqpdf/qpdf/
/src/zlib/
/src/qpdf/libqpdf/
/usr/local/bin/../include/c++/v1/
/src/libjpeg-turbo/src/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
ascii85_fuzzer fuzzerLogFile-0-KDA9UbGyNE.data fuzzerLogFile-0-KDA9UbGyNE.data.yaml ascii85_fuzzer.covreport
flate_fuzzer fuzzerLogFile-0-aoprSPjpNI.data fuzzerLogFile-0-aoprSPjpNI.data.yaml flate_fuzzer.covreport
future_ascii85_fuzzer fuzzerLogFile-0-JndpLjuJZO.data fuzzerLogFile-0-JndpLjuJZO.data.yaml future_ascii85_fuzzer.covreport
future_runlength_fuzzer fuzzerLogFile-0-3UuORbWLNL.data fuzzerLogFile-0-3UuORbWLNL.data.yaml future_runlength_fuzzer.covreport
tiffpredictor_fuzzer fuzzerLogFile-0-WcQ1Vj5A2J.data fuzzerLogFile-0-WcQ1Vj5A2J.data.yaml tiffpredictor_fuzzer.covreport
future_flate_fuzzer fuzzerLogFile-0-th1oLckQO0.data fuzzerLogFile-0-th1oLckQO0.data.yaml future_flate_fuzzer.covreport
pngpredictor_fuzzer fuzzerLogFile-0-HK2zOurd3A.data fuzzerLogFile-0-HK2zOurd3A.data.yaml pngpredictor_fuzzer.covreport
hex_fuzzer fuzzerLogFile-0-8K6VL4lJMC.data fuzzerLogFile-0-8K6VL4lJMC.data.yaml hex_fuzzer.covreport
future_lzw_fuzzer fuzzerLogFile-0-6XggS7qPG6.data fuzzerLogFile-0-6XggS7qPG6.data.yaml future_lzw_fuzzer.covreport
future_dct_fuzzer fuzzerLogFile-0-p3eRlAA3U8.data fuzzerLogFile-0-p3eRlAA3U8.data.yaml future_dct_fuzzer.covreport
dct_fuzzer fuzzerLogFile-0-5XakSsZIiu.data fuzzerLogFile-0-5XakSsZIiu.data.yaml dct_fuzzer.covreport
lzw_fuzzer fuzzerLogFile-0-4dIYjNVx0b.data fuzzerLogFile-0-4dIYjNVx0b.data.yaml lzw_fuzzer.covreport
runlength_fuzzer fuzzerLogFile-0-yzdiq5CN8J.data fuzzerLogFile-0-yzdiq5CN8J.data.yaml runlength_fuzzer.covreport
future_pngpredictor_fuzzer fuzzerLogFile-0-3NgJX0Pbn7.data fuzzerLogFile-0-3NgJX0Pbn7.data.yaml future_pngpredictor_fuzzer.covreport
future_tiffpredictor_fuzzer fuzzerLogFile-0-x4TAZPckfY.data fuzzerLogFile-0-x4TAZPckfY.data.yaml future_tiffpredictor_fuzzer.covreport
future_hex_fuzzer fuzzerLogFile-0-UblLr6wBuM.data fuzzerLogFile-0-UblLr6wBuM.data.yaml future_hex_fuzzer.covreport
future_json_fuzzer fuzzerLogFile-0-fLulp5IZ8o.data fuzzerLogFile-0-fLulp5IZ8o.data.yaml future_json_fuzzer.covreport
future_qpdf_outlines_fuzzer fuzzerLogFile-0-mn4aJ2IqO3.data fuzzerLogFile-0-mn4aJ2IqO3.data.yaml future_qpdf_outlines_fuzzer.covreport
future_qpdf_pages_fuzzer fuzzerLogFile-0-18JN09Ba2S.data fuzzerLogFile-0-18JN09Ba2S.data.yaml future_qpdf_pages_fuzzer.covreport
json_fuzzer fuzzerLogFile-0-IRWacSTM96.data fuzzerLogFile-0-IRWacSTM96.data.yaml json_fuzzer.covreport
qpdf_pages_fuzzer fuzzerLogFile-0-3r6YxvcE7j.data fuzzerLogFile-0-3r6YxvcE7j.data.yaml qpdf_pages_fuzzer.covreport
future_qpdf_crypt_fuzzer fuzzerLogFile-0-MnCdMzs1B3.data fuzzerLogFile-0-MnCdMzs1B3.data.yaml future_qpdf_crypt_fuzzer.covreport
qpdf_outlines_fuzzer fuzzerLogFile-0-Brc3v8jfr0.data fuzzerLogFile-0-Brc3v8jfr0.data.yaml qpdf_outlines_fuzzer.covreport
qpdf_lin_fuzzer fuzzerLogFile-0-FRCTRbisOv.data fuzzerLogFile-0-FRCTRbisOv.data.yaml qpdf_lin_fuzzer.covreport
future_qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-4mQXgLymMs.data fuzzerLogFile-0-4mQXgLymMs.data.yaml future_qpdf_crypt_insecure_fuzzer.covreport
qpdf_fuzzer fuzzerLogFile-0-55KyIEkg4L.data fuzzerLogFile-0-55KyIEkg4L.data.yaml qpdf_fuzzer.covreport
future_qpdf_fuzzer fuzzerLogFile-0-AJdrfNmLqm.data fuzzerLogFile-0-AJdrfNmLqm.data.yaml future_qpdf_fuzzer.covreport
qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-aQdtnHYHoT.data fuzzerLogFile-0-aQdtnHYHoT.data.yaml qpdf_crypt_insecure_fuzzer.covreport
qpdf_crypt_fuzzer fuzzerLogFile-0-K0TpjDGH5O.data fuzzerLogFile-0-K0TpjDGH5O.data.yaml qpdf_crypt_fuzzer.covreport
future_qpdf_lin_fuzzer fuzzerLogFile-0-ejZdc0U7Id.data fuzzerLogFile-0-ejZdc0U7Id.data.yaml future_qpdf_lin_fuzzer.covreport