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
future_lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 82 48 10 12 258 195 lzw_fuzzer.cc
pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 71 70 8 9 218 170 pngpredictor_fuzzer.cc
future_pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 71 70 8 9 218 170 pngpredictor_fuzzer.cc
future_runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 64 66 6 8 203 140 runlength_fuzzer.cc
tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 91 79 11 14 281 223 tiffpredictor_fuzzer.cc
ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 47 26 5 8 132 91 ascii85_fuzzer.cc
future_hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 44 28 5 8 126 83 hex_fuzzer.cc
runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 64 66 6 8 203 140 runlength_fuzzer.cc
lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 82 48 10 12 258 195 lzw_fuzzer.cc
future_tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 91 79 11 14 281 223 tiffpredictor_fuzzer.cc
future_ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 47 26 5 8 132 91 ascii85_fuzzer.cc
flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 138 461 11 16 2642 1025 flate_fuzzer.cc
future_flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 138 461 11 16 2642 1025 flate_fuzzer.cc
dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 287 862 10 58 4491 1784 dct_fuzzer.cc
json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1500 2475 41 65 11960 8898 json_fuzzer.cc
future_qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1718 2461 41 74 13214 9880 qpdf_outlines_fuzzer.cc
qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1718 2459 41 74 13221 9886 qpdf_outlines_fuzzer.cc
hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 44 28 5 8 126 83 hex_fuzzer.cc
qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 2192 2382 41 92 19217 13174 qpdf_lin_fuzzer.cc
future_qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 2188 2386 41 92 19194 13164 qpdf_fuzzer.cc
future_dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 287 862 10 58 4491 1784 dct_fuzzer.cc
qpdf_pages_fuzzer /src/qpdf/fuzz/qpdf_pages_fuzzer.cc 2364 2147 41 100 19783 14640 qpdf_pages_fuzzer.cc
qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 2210 2373 41 92 19373 13264 qpdf_crypt_fuzzer.cc
qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 2208 2374 41 92 19361 13262 qpdf_crypt_insecure_fuzzer.cc
future_qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 2192 2384 41 92 19210 13168 qpdf_lin_fuzzer.cc
future_qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 2208 2376 41 92 19354 13256 qpdf_crypt_insecure_fuzzer.cc
future_qpdf_pages_fuzzer /src/qpdf/fuzz/qpdf_pages_fuzzer.cc 2364 2149 41 100 19776 14634 qpdf_pages_fuzzer.cc
future_json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1500 2477 41 65 11960 8898 json_fuzzer.cc
future_qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 2210 2375 41 92 19366 13258 qpdf_crypt_fuzzer.cc
qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 2188 2384 41 92 19201 13170 qpdf_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: 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.0%
gold [1:9] 0 0.0%
yellow [10:29] 5 6.75%
greenyellow [30:49] 5 6.75%
lawngreen 50+ 44 59.4%
All colors 74 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 20 unsigned int QIntC::to_uint (unsigned long const&) call site: 00020 __cxa_allocate_exception
5 8 Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) call site: 00008 __cxa_allocate_exception
5 35 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00035 __cxa_allocate_exception
1 41 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00041
1 72 FuzzHelper::run() call site: 00072 __cxa_begin_catch

Runtime coverage analysis

Covered functions
34
Functions that are reachable but not covered
25
Reachable functions
82
Percentage of reachable functions covered
69.51%
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 4
/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: 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 8 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00008 __cxa_allocate_exception
5 14 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00014 __cxa_allocate_exception
4 27 Pl_PNGFilter::write(unsigned char const*, unsigned long) call site: 00027
3 53 FuzzHelper::run() call site: 00053 __cxa_end_catch

Runtime coverage analysis

Covered functions
31
Functions that are reachable but not covered
16
Reachable functions
71
Percentage of reachable functions covered
77.46%
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 4
/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 5
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.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 8 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00008 __cxa_allocate_exception
5 14 Pl_PNGFilter::Pl_PNGFilter(char const*, Pipeline*, Pl_PNGFilter::action_e, unsigned int, unsigned int, unsigned int) call site: 00014 __cxa_allocate_exception
4 27 Pl_PNGFilter::write(unsigned char const*, unsigned long) call site: 00027
3 53 FuzzHelper::run() call site: 00053 __cxa_end_catch

Runtime coverage analysis

Covered functions
31
Functions that are reachable but not covered
16
Reachable functions
71
Percentage of reachable functions covered
77.46%
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 4
/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 5
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.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 20 34.4%
gold [1:9] 0 0.0%
yellow [10:29] 5 8.62%
greenyellow [30:49] 5 8.62%
lawngreen 50+ 28 48.2%
All colors 58 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
12 18 FuzzHelper::doChecks() call site: 00018
5 11 Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e) call site: 00011 __cxa_allocate_exception
2 38 FuzzHelper::doChecks() call site: 00038
1 56 FuzzHelper::run() call site: 00056 __cxa_begin_catch

Runtime coverage analysis

Covered functions
26
Functions that are reachable but not covered
24
Reachable functions
64
Percentage of reachable functions covered
62.5%
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 4
/src/qpdf/libqpdf/Pl_RunLength.cc 8
/src/qpdf/libqpdf/qpdf/global_private.hh 1
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 3
/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 50.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 41 49.3%
All colors 83 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 32 unsigned int QIntC::to_uint (unsigned long const&) call site: 00032 __cxa_allocate_exception
10 47 BitStream::getBitsSigned(unsigned long) call site: 00047 __cxa_allocate_exception
5 8 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00008 __cxa_allocate_exception
5 14 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00014 __cxa_allocate_exception
5 60 BitWriter::writeBits(unsigned long long, unsigned long) call site: 00060 __cxa_allocate_exception
3 79 FuzzHelper::run() call site: 00079 __cxa_end_catch
1 66 Pl_TIFFPredictor::processRow() call site: 00066

Runtime coverage analysis

Covered functions
34
Functions that are reachable but not covered
30
Reachable functions
91
Percentage of reachable functions covered
67.03%
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 4
/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 5
/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: 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.2%
gold [1:9] 5 10.2%
yellow [10:29] 12 24.4%
greenyellow [30:49] 2 4.08%
lawngreen 50+ 23 46.9%
All colors 49 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 8 Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*) call site: 00008 __cxa_allocate_exception
1 41 FuzzHelper::doChecks() call site: 00041
1 47 FuzzHelper::run() call site: 00047 __cxa_begin_catch

Runtime coverage analysis

Covered functions
18
Functions that are reachable but not covered
16
Reachable functions
47
Percentage of reachable functions covered
65.96%
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 4
/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_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.4%
gold [1:9] 1 2.63%
yellow [10:29] 0 0.0%
greenyellow [30:49] 6 15.7%
lawngreen 50+ 24 63.1%
All colors 38 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 8 Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*) call site: 00008 __cxa_allocate_exception
1 30 FuzzHelper::doChecks() call site: 00030
1 36 FuzzHelper::run() call site: 00036 __cxa_begin_catch

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
15
Reachable functions
44
Percentage of reachable functions covered
65.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/hex_fuzzer.cc 4
/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: 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 20 34.4%
gold [1:9] 0 0.0%
yellow [10:29] 5 8.62%
greenyellow [30:49] 5 8.62%
lawngreen 50+ 28 48.2%
All colors 58 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
12 18 FuzzHelper::doChecks() call site: 00018
5 11 Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e) call site: 00011 __cxa_allocate_exception
2 38 FuzzHelper::doChecks() call site: 00038
1 56 FuzzHelper::run() call site: 00056 __cxa_begin_catch

Runtime coverage analysis

Covered functions
26
Functions that are reachable but not covered
24
Reachable functions
64
Percentage of reachable functions covered
62.5%
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 4
/src/qpdf/libqpdf/Pl_RunLength.cc 8
/src/qpdf/libqpdf/qpdf/global_private.hh 1
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 3
/src/qpdf/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1

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.0%
gold [1:9] 0 0.0%
yellow [10:29] 5 6.75%
greenyellow [30:49] 5 6.75%
lawngreen 50+ 44 59.4%
All colors 74 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 20 unsigned int QIntC::to_uint (unsigned long const&) call site: 00020 __cxa_allocate_exception
5 8 Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool) call site: 00008 __cxa_allocate_exception
5 35 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00035 __cxa_allocate_exception
1 41 Pl_LZWDecoder::getFirstChar(unsigned int) call site: 00041
1 72 FuzzHelper::run() call site: 00072 __cxa_begin_catch

Runtime coverage analysis

Covered functions
34
Functions that are reachable but not covered
25
Reachable functions
82
Percentage of reachable functions covered
69.51%
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 4
/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_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 50.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 41 49.3%
All colors 83 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 32 unsigned int QIntC::to_uint (unsigned long const&) call site: 00032 __cxa_allocate_exception
10 47 BitStream::getBitsSigned(unsigned long) call site: 00047 __cxa_allocate_exception
5 8 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00008 __cxa_allocate_exception
5 14 Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int) call site: 00014 __cxa_allocate_exception
5 60 BitWriter::writeBits(unsigned long long, unsigned long) call site: 00060 __cxa_allocate_exception
3 79 FuzzHelper::run() call site: 00079 __cxa_end_catch
1 66 Pl_TIFFPredictor::processRow() call site: 00066

Runtime coverage analysis

Covered functions
34
Functions that are reachable but not covered
30
Reachable functions
91
Percentage of reachable functions covered
67.03%
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 4
/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 5
/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_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.2%
gold [1:9] 5 10.2%
yellow [10:29] 12 24.4%
greenyellow [30:49] 2 4.08%
lawngreen 50+ 23 46.9%
All colors 49 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 8 Pl_ASCII85Decoder::Pl_ASCII85Decoder(char const*, Pipeline*) call site: 00008 __cxa_allocate_exception
1 41 FuzzHelper::doChecks() call site: 00041
1 47 FuzzHelper::run() call site: 00047 __cxa_begin_catch

Runtime coverage analysis

Covered functions
18
Functions that are reachable but not covered
16
Reachable functions
47
Percentage of reachable functions covered
65.96%
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 4
/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 141 62.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 86 37.8%
All colors 227 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 158 deflate call site: 00158 inflate
15 87 deflate call site: 00087 crc32
13 45 deflateResetKeep call site: 00045 crc32_z
11 144 deflate call site: 00144 _tr_flush_block
8 9 unsigned long QIntC::to_size (unsigned int const&) call site: 00009 __cxa_allocate_exception
8 64 deflateReset call site: 00064 inflateInit_
7 209 Pl_Flate::finish() call site: 00209 __cxa_begin_catch
6 186 unsigned long QIntC::to_ulong (unsigned long const&) call site: 00186 __cxa_allocate_exception
6 196 FuzzHelper::doChecks() call site: 00196 __cxa_allocate_exception
5 18 Pl_Flate::Pl_Flate(char const*, Pipeline*, Pl_Flate::action_e, unsigned int) call site: 00018 __cxa_allocate_exception
5 29 Pl_Flate::handleData(unsigned char const*, unsigned long, int) call site: 00029 __cxa_allocate_exception
5 138 _tr_flush_block call site: 00138 _tr_flush_block

Runtime coverage analysis

Covered functions
71
Functions that are reachable but not covered
57
Reachable functions
138
Percentage of reachable functions covered
58.7%
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 4
/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/libqpdf/qpdf/Util.hh 3
/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_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 141 62.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 86 37.8%
All colors 227 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 158 deflate call site: 00158 inflate
15 87 deflate call site: 00087 crc32
13 45 deflateResetKeep call site: 00045 crc32_z
11 144 deflate call site: 00144 _tr_flush_block
8 9 unsigned long QIntC::to_size (unsigned int const&) call site: 00009 __cxa_allocate_exception
8 64 deflateReset call site: 00064 inflateInit_
7 209 Pl_Flate::finish() call site: 00209 __cxa_begin_catch
6 186 unsigned long QIntC::to_ulong (unsigned long const&) call site: 00186 __cxa_allocate_exception
6 196 FuzzHelper::doChecks() call site: 00196 __cxa_allocate_exception
5 18 Pl_Flate::Pl_Flate(char const*, Pipeline*, Pl_Flate::action_e, unsigned int) call site: 00018 __cxa_allocate_exception
5 29 Pl_Flate::handleData(unsigned char const*, unsigned long, int) call site: 00029 __cxa_allocate_exception
5 138 _tr_flush_block call site: 00138 _tr_flush_block

Runtime coverage analysis

Covered functions
71
Functions that are reachable but not covered
57
Reachable functions
138
Percentage of reachable functions covered
58.7%
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 4
/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/libqpdf/qpdf/Util.hh 3
/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: 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 219 59.0%
gold [1:9] 1 0.26%
yellow [10:29] 6 1.61%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 145 39.0%
All colors 371 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 141 init_simd call site: 00141 jinit_forward_dct
32 96 std_huff_tables call site: 00096 jpeg_start_compress
30 198 unsigned int QIntC::to_uint (int const&) call site: 00198 jpeg_finish_compress
19 275 master_selection call site: 00275 jinit_1pass_quantizer
16 14 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00014 _ZN4qpdf4util4fitsIjTkNSt3__18integralEyQsr3stdE8integralIT_EEEbT0_
14 31 qpdf_global_set_uint32 call site: 00031 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 46 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00046 __cxa_allocate_exception
11 80 jinit_memory_mgr call site: 00080 jpeg_set_defaults
9 251 jpeg_core_output_dimensions call site: 00251 jdiv_round_up
7 243 jpeg_calc_output_dimensions call site: 00243 jdiv_round_up
3 71 Pl_DCT::finish() call site: 00071 jpeg_CreateCompress
3 299 jinit_color_deconverter call site: 00299 jsimd_set_ycc_rgb565

Runtime coverage analysis

Covered functions
219
Functions that are reachable but not covered
162
Reachable functions
287
Percentage of reachable functions covered
43.55%
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 4
/src/qpdf/libqpdf/Pl_DCT.cc 13
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 8
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/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: 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 2387 76.2%
gold [1:9] 25 0.79%
yellow [10:29] 33 1.05%
greenyellow [30:49] 29 0.92%
lawngreen 50+ 658 21.0%
All colors 3132 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
230 2675 std::__1::shared_ptr QPDFObject::create (bool&) call site: 02675 _ZN4qpdf7IntegerC2ITkNSt3__18integralEmEET_
201 2050 QUtil::hex_decode(std::__1::basic_string , std::__1::allocator > const&) call site: 02050 __cxa_allocate_exception
177 1635 std::__1::shared_ptr QPDFObject::create , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&&) call site: 01635 __cxa_guard_acquire
129 1885 QPDF::EncryptionParameters::initialize(QPDF&) call site: 01885 __cxa_allocate_exception
106 1465 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: 01465 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
97 2433 QPDFObjectHandle::getObjectID() const call site: 02433 __cxa_allocate_exception
86 1375 QPDFObjectHandle::getIntValueAsInt() const call site: 01375 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralExEEv
77 806 QPDFObject::move_to(std::__1::shared_ptr &, bool) call site: 00806 __cxa_allocate_exception
74 1252 qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&) call site: 01252 __cxa_allocate_exception
64 1086 QPDFLogger::defaultLogger() call site: 01086 __cxa_end_catch
60 2260 QPDF::Doc::Objects::readTrailer() call site: 02260 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralEjEEv
55 1578 qpdf::BaseDictionary::replace(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle) call site: 01578 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
466
Functions that are reachable but not covered
798
Reachable functions
1500
Percentage of reachable functions covered
46.8%
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 4
/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/libqpdf/qpdf/Util.hh 15
/src/qpdf/libqpdf/QUtil.cc 12
/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 25
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 26
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/QPDF_json.cc 5
/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/global_private.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 647 17.9%
gold [1:9] 122 3.37%
yellow [10:29] 70 1.93%
greenyellow [30:49] 49 1.35%
lawngreen 50+ 2724 75.4%
All colors 3612 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
61 2426 std::__1::shared_ptr QPDFObject::create , std::__1::allocator >&>(std::__1::basic_string , std::__1::allocator >&) call site: 02426 __cxa_allocate_exception
32 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
25 1412 QPDF::EncryptionParameters::interpretCF(qpdf::Name const&) const call site: 01412
23 2401 QPDF::Doc::Pages::getAllPagesInternal(QPDFObjectHandle, QPDFObjGen::set&, QPDFObjGen::set&, bool, bool) call site: 02401 __cxa_allocate_exception
14 43 qpdf_global_set_uint32 call site: 00043 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
12 30 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00030
11 58 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00058 __cxa_allocate_exception
11 216 qpdf::Tokenizer::inBeforeToken(char) call site: 00216 __cxa_allocate_exception
10 1399 QPDF::decryptStream(std::__1::shared_ptr , std::__1::shared_ptr , QPDF&, Pipeline*&, QPDFObjGen, QPDFObjectHandle&, bool, std::__1::unique_ptr >&) call site: 01399
9 1312 qpdf::BaseDictionary::dict() const call site: 01312 __cxa_allocate_exception
9 2801 QPDF::Doc::Objects::parse(char const*) call site: 02801 __cxa_begin_catch
8 91 unsigned long QIntC::to_size (long const&) call site: 00091 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1055
Functions that are reachable but not covered
263
Reachable functions
1718
Percentage of reachable functions covered
84.69%
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 7
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 25
/src/qpdf/libqpdf/Pl_PNGFilter.cc 1
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 25
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/QPDF.cc 20
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 30
/src/qpdf/libqpdf/QPDF_objects.cc 50
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 32
/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 64
/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_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_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 624 17.2%
gold [1:9] 109 3.01%
yellow [10:29] 87 2.40%
greenyellow [30:49] 51 1.41%
lawngreen 50+ 2743 75.8%
All colors 3614 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
61 2428 std::__1::shared_ptr QPDFObject::create , std::__1::allocator >&>(std::__1::basic_string , std::__1::allocator >&) call site: 02428 __cxa_allocate_exception
32 1269 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01269 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
23 2403 QPDF::Doc::Pages::getAllPagesInternal(QPDFObjectHandle, QPDFObjGen::set&, QPDFObjGen::set&, bool, bool) call site: 02403 __cxa_allocate_exception
14 43 qpdf_global_set_uint32 call site: 00043 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
12 30 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00030
11 58 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00058 __cxa_allocate_exception
11 225 qpdf::Tokenizer::inBeforeToken(char) call site: 00225 __cxa_allocate_exception
9 1314 qpdf::BaseDictionary::dict() const call site: 01314 __cxa_allocate_exception
9 2803 QPDF::Doc::Objects::parse(char const*) call site: 02803 __cxa_begin_catch
8 76 long long QIntC::to_offset (unsigned long const&) call site: 00076 __cxa_allocate_exception
8 954 qpdf::Stream::Stream(std::__1::shared_ptr const&) call site: 00954 __cxa_allocate_exception
8 1429 QPDF::decryptStream(std::__1::shared_ptr , std::__1::shared_ptr , QPDF&, Pipeline*&, QPDFObjGen, QPDFObjectHandle&, bool, std::__1::unique_ptr >&) call site: 01429

Runtime coverage analysis

Covered functions
1052
Functions that are reachable but not covered
261
Reachable functions
1718
Percentage of reachable functions covered
84.81%
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 7
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 25
/src/qpdf/libqpdf/Pl_PNGFilter.cc 1
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 25
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/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/QPDF.cc 20
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 30
/src/qpdf/libqpdf/QPDF_objects.cc 50
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 32
/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 64
/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_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: 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.4%
gold [1:9] 0 0.0%
yellow [10:29] 1 2.63%
greenyellow [30:49] 6 15.7%
lawngreen 50+ 24 63.1%
All colors 38 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 8 Pl_ASCIIHexDecoder::Pl_ASCIIHexDecoder(char const*, Pipeline*) call site: 00008 __cxa_allocate_exception
1 30 FuzzHelper::doChecks() call site: 00030
1 36 FuzzHelper::run() call site: 00036 __cxa_begin_catch

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
15
Reachable functions
44
Percentage of reachable functions covered
65.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/hex_fuzzer.cc 4
/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: 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 1032 21.5%
gold [1:9] 105 2.18%
yellow [10:29] 96 2.0%
greenyellow [30:49] 93 1.93%
lawngreen 50+ 3474 72.3%
All colors 4800 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 4694 qpdf::impl::Writer::write() call site: 04694 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4471 qpdf::impl::Writer::writeLinearized() call site: 04471 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1269 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01269 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
28 3032 ObjTable ::large_element(unsigned long) call site: 03032 __cxa_allocate_exception
26 2457 qpdf::BaseHandle::copy(bool) const call site: 02457 __cxa_allocate_exception
25 1414 QPDF::EncryptionParameters::interpretCF(qpdf::Name const&) const call site: 01414
22 4248 qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool) call site: 04248
18 3493 qpdf::impl::Writer::writeLinearized() call site: 03493 fopen
17 4178 qpdf::BaseHandle::unparse() const call site: 04178 __cxa_allocate_exception
16 2803 QPDF::Doc::Objects::parse(char const*) call site: 02803 __cxa_begin_catch
16 2969 qpdf::impl::Writer::doWriteSetup() call site: 02969
15 3745 deflate call site: 03745 crc32

Runtime coverage analysis

Covered functions
1397
Functions that are reachable but not covered
356
Reachable functions
2192
Percentage of reachable functions covered
83.76%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/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/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 84
/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/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

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 1459 30.4%
gold [1:9] 122 2.54%
yellow [10:29] 77 1.60%
greenyellow [30:49] 94 1.96%
lawngreen 50+ 3043 63.4%
All colors 4795 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
224 3210 qpdf::impl::Writer::write() call site: 03210 __assert_fail
120 4464 qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle) call site: 04464 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
81 3730 Pl_Flate::checkError(char const*, int) call site: 03730 deflate
47 4696 qpdf::impl::Writer::writeStandard() call site: 04696 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
42 2908 qpdf::impl::Writer::generateID(bool) call site: 02908
39 4621 BitWriter::flush() call site: 04621
32 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4590 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04590 __cxa_allocate_exception
27 4661 qpdf::pl::Count::~Count() call site: 04661 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
26 2455 qpdf::BaseHandle::copy(bool) const call site: 02455 __cxa_allocate_exception
23 3486 (anonymous namespace)::Pl_stack::popper() call site: 03486 fopen
23 3535 qpdf::impl::Writer::openObject(int) call site: 03535 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_

Runtime coverage analysis

Covered functions
1342
Functions that are reachable but not covered
469
Reachable functions
2188
Percentage of reachable functions covered
78.56%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 82
/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/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

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 219 59.0%
gold [1:9] 1 0.26%
yellow [10:29] 5 1.34%
greenyellow [30:49] 1 0.26%
lawngreen 50+ 145 39.0%
All colors 371 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 141 init_simd call site: 00141 jinit_forward_dct
32 96 std_huff_tables call site: 00096 jpeg_start_compress
30 198 unsigned int QIntC::to_uint (int const&) call site: 00198 jpeg_finish_compress
19 275 master_selection call site: 00275 jinit_1pass_quantizer
16 14 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00014 _ZN4qpdf4util4fitsIjTkNSt3__18integralEyQsr3stdE8integralIT_EEEbT0_
14 31 qpdf_global_set_uint32 call site: 00031 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
11 46 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00046 __cxa_allocate_exception
11 80 jinit_memory_mgr call site: 00080 jpeg_set_defaults
9 251 jpeg_core_output_dimensions call site: 00251 jdiv_round_up
7 243 jpeg_calc_output_dimensions call site: 00243 jdiv_round_up
3 71 Pl_DCT::finish() call site: 00071 jpeg_CreateCompress
3 299 jinit_color_deconverter call site: 00299 jsimd_set_ycc_rgb565

Runtime coverage analysis

Covered functions
219
Functions that are reachable but not covered
162
Reachable functions
287
Percentage of reachable functions covered
43.55%
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 4
/src/qpdf/libqpdf/Pl_DCT.cc 13
/src/qpdf/libqpdf/qpdf/global_private.hh 13
/src/qpdf/libqpdf/qpdf/Util.hh 8
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 1
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 1
/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: 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 949 16.7%
gold [1:9] 110 1.93%
yellow [10:29] 104 1.83%
greenyellow [30:49] 130 2.29%
lawngreen 50+ 4380 77.2%
All colors 5673 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
54 5292 (anonymous namespace)::JSONParser::getToken() call site: 05292 __cxa_allocate_exception
23 2460 qpdf::BaseHandle::copy(bool) const call site: 02460 __cxa_allocate_exception
19 4305 qpdf::Name::normalize(std::__1::basic_string , std::__1::allocator > const&) call site: 04305 __cxa_allocate_exception
19 5420 (anonymous namespace)::JSONParser::handleToken() call site: 05420 __cxa_allocate_exception
19 5505 (anonymous namespace)::JSONParser::handleToken() call site: 05505 __cxa_allocate_exception
14 43 qpdf_global_set_uint32 call site: 00043 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
14 4153 qpdf::Stream::copy_data_to(qpdf::Stream&) call site: 04153 __cxa_allocate_exception
13 5142 qpdf::BaseHandle::write_json(int, JSON::Writer&) const call site: 05142
12 30 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00030
11 58 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00058 __cxa_allocate_exception
11 225 qpdf::Tokenizer::inBeforeToken(char) call site: 00225 __cxa_allocate_exception
11 1286 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01286 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE

Runtime coverage analysis

Covered functions
1541
Functions that are reachable but not covered
259
Reachable functions
2364
Percentage of reachable functions covered
89.04%
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 8
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 28
/src/qpdf/libqpdf/Pl_PNGFilter.cc 1
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 28
/src/qpdf/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 4
/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/QPDF.cc 23
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 38
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 44
/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 114
/src/qpdf/libqpdf/QPDF_Dictionary.cc 18
/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 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_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/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: 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 979 20.1%
gold [1:9] 126 2.59%
yellow [10:29] 133 2.74%
greenyellow [30:49] 60 1.23%
lawngreen 50+ 3553 73.2%
All colors 4851 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 4745 qpdf::impl::Writer::write() call site: 04745 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
47 2972 qpdf::impl::Writer::doWriteSetup() call site: 02972
32 1269 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01269 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
26 2457 qpdf::BaseHandle::copy(bool) const call site: 02457 __cxa_allocate_exception
26 2872 qpdf::impl::Writer::generateID(bool) call site: 02872 __cxa_allocate_exception
18 3544 qpdf::impl::Writer::writeLinearized() call site: 03544 fopen
17 4229 qpdf::BaseHandle::unparse() const call site: 04229 __cxa_allocate_exception
16 2803 QPDF::Doc::Objects::parse(char const*) call site: 02803 __cxa_begin_catch
16 2909 qpdf::impl::Writer::setEncryptionParameters(char const*, char const*) call site: 02909 __cxa_allocate_exception
16 3020 qpdf::impl::Writer::doWriteSetup() call site: 03020
15 3796 deflate call site: 03796 crc32
15 4341 qpdf::impl::Writer::writeTrailer(qpdf::impl::Writer::trailer_e, int, bool, long long, int) call site: 04341 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1399
Functions that are reachable but not covered
364
Reachable functions
2210
Percentage of reachable functions covered
83.53%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/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/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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/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

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 1678 34.6%
gold [1:9] 90 1.85%
yellow [10:29] 126 2.59%
greenyellow [30:49] 39 0.80%
lawngreen 50+ 2916 60.1%
All colors 4849 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
235 3264 qpdf::impl::Writer::write() call site: 03264 __assert_fail
79 4559 qpdf::impl::Writer::writeEncryptionDictionary() call site: 04559 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_
76 3081 ObjTable ::large_element(unsigned long) call site: 03081 __cxa_allocate_exception
57 4464 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04464 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEmEERS1_T_
47 2970 qpdf::impl::Writer::doWriteSetup() call site: 02970
47 4750 qpdf::impl::Writer::writeStandard() call site: 04750 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4675 BitWriter::flush() call site: 04675
34 4402 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04402 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1269 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01269 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4644 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04644 __cxa_allocate_exception
29 3540 (anonymous namespace)::Pl_stack::popper() call site: 03540 fopen
27 4715 qpdf::pl::Count::~Count() call site: 04715 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_

Runtime coverage analysis

Covered functions
1308
Functions that are reachable but not covered
515
Reachable functions
2208
Percentage of reachable functions covered
76.68%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/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/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 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/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

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 1008 21.0%
gold [1:9] 124 2.58%
yellow [10:29] 105 2.18%
greenyellow [30:49] 73 1.52%
lawngreen 50+ 3488 72.6%
All colors 4798 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 4692 qpdf::impl::Writer::write() call site: 04692 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4469 qpdf::impl::Writer::writeLinearized() call site: 04469 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
28 3030 ObjTable ::large_element(unsigned long) call site: 03030 __cxa_allocate_exception
26 2455 qpdf::BaseHandle::copy(bool) const call site: 02455 __cxa_allocate_exception
22 4246 qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool) call site: 04246
18 3491 qpdf::impl::Writer::writeLinearized() call site: 03491 fopen
17 4176 qpdf::BaseHandle::unparse() const call site: 04176 __cxa_allocate_exception
16 2801 QPDF::Doc::Objects::parse(char const*) call site: 02801 __cxa_begin_catch
16 2967 qpdf::impl::Writer::doWriteSetup() call site: 02967
15 3743 deflate call site: 03743 crc32
14 43 qpdf_global_set_uint32 call site: 00043 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_

Runtime coverage analysis

Covered functions
1402
Functions that are reachable but not covered
354
Reachable functions
2192
Percentage of reachable functions covered
83.85%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 84
/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/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

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 1679 34.6%
gold [1:9] 108 2.22%
yellow [10:29] 110 2.26%
greenyellow [30:49] 79 1.62%
lawngreen 50+ 2871 59.2%
All colors 4847 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
235 3262 qpdf::impl::Writer::write() call site: 03262 __assert_fail
79 4557 qpdf::impl::Writer::writeEncryptionDictionary() call site: 04557 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_
76 3079 ObjTable ::large_element(unsigned long) call site: 03079 __cxa_allocate_exception
57 4462 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04462 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEmEERS1_T_
47 2968 qpdf::impl::Writer::doWriteSetup() call site: 02968
47 4748 qpdf::impl::Writer::writeStandard() call site: 04748 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
39 4673 BitWriter::flush() call site: 04673
34 4400 qpdf::impl::Writer::writeObject(QPDFObjectHandle, int) call site: 04400 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
32 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4642 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04642 __cxa_allocate_exception
29 3538 (anonymous namespace)::Pl_stack::popper() call site: 03538 fopen
27 4713 qpdf::pl::Count::~Count() call site: 04713 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_

Runtime coverage analysis

Covered functions
1312
Functions that are reachable but not covered
515
Reachable functions
2208
Percentage of reachable functions covered
76.68%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 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/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

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.5%
gold [1:9] 114 2.01%
yellow [10:29] 147 2.59%
greenyellow [30:49] 85 1.49%
lawngreen 50+ 4386 77.3%
All colors 5671 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
54 5290 (anonymous namespace)::JSONParser::getToken() call site: 05290 __cxa_allocate_exception
23 2458 qpdf::BaseHandle::copy(bool) const call site: 02458 __cxa_allocate_exception
19 4303 qpdf::Name::normalize(std::__1::basic_string , std::__1::allocator > const&) call site: 04303 __cxa_allocate_exception
19 5418 (anonymous namespace)::JSONParser::handleToken() call site: 05418 __cxa_allocate_exception
19 5503 (anonymous namespace)::JSONParser::handleToken() call site: 05503 __cxa_allocate_exception
14 43 qpdf_global_set_uint32 call site: 00043 _ZN4qpdf4util4fitsIiTkNSt3__18integralEjQsr3stdE8integralIT_EEEbT0_
14 4151 qpdf::Stream::copy_data_to(qpdf::Stream&) call site: 04151 __cxa_allocate_exception
13 5140 qpdf::BaseHandle::write_json(int, JSON::Writer&) const call site: 05140
12 30 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00030
11 58 qpdf::global::set_uint32(qpdf_param_e, unsigned int) call site: 00058 __cxa_allocate_exception
11 216 qpdf::Tokenizer::inBeforeToken(char) call site: 00216 __cxa_allocate_exception
11 1284 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01284 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE

Runtime coverage analysis

Covered functions
1477
Functions that are reachable but not covered
259
Reachable functions
2364
Percentage of reachable functions covered
89.04%
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 8
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 28
/src/qpdf/libqpdf/Pl_PNGFilter.cc 1
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 2
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 28
/src/qpdf/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 4
/src/qpdf/libqpdf/QPDF.cc 23
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 38
/src/qpdf/libqpdf/QPDF_objects.cc 51
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 44
/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 114
/src/qpdf/libqpdf/QPDF_Dictionary.cc 18
/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 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_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/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_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 2387 76.2%
gold [1:9] 20 0.63%
yellow [10:29] 58 1.85%
greenyellow [30:49] 13 0.41%
lawngreen 50+ 654 20.8%
All colors 3132 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
230 2675 std::__1::shared_ptr QPDFObject::create (bool&) call site: 02675 _ZN4qpdf7IntegerC2ITkNSt3__18integralEmEET_
201 2050 QUtil::hex_decode(std::__1::basic_string , std::__1::allocator > const&) call site: 02050 __cxa_allocate_exception
177 1635 std::__1::shared_ptr QPDFObject::create , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&&) call site: 01635 __cxa_guard_acquire
129 1885 QPDF::EncryptionParameters::initialize(QPDF&) call site: 01885 __cxa_allocate_exception
106 1465 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: 01465 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
97 2433 QPDFObjectHandle::getObjectID() const call site: 02433 __cxa_allocate_exception
86 1375 QPDFObjectHandle::getIntValueAsInt() const call site: 01375 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralExEEv
77 806 QPDFObject::move_to(std::__1::shared_ptr &, bool) call site: 00806 __cxa_allocate_exception
74 1252 qpdf::BaseDictionary::BaseDictionary(QPDFObjectHandle const&) call site: 01252 __cxa_allocate_exception
64 1086 QPDFLogger::defaultLogger() call site: 01086 __cxa_end_catch
60 2260 QPDF::Doc::Objects::readTrailer() call site: 02260 _ZNK4qpdf7IntegercvT_ITkNSt3__18integralEjEEv
55 1578 qpdf::BaseDictionary::replace(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle) call site: 01578 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
467
Functions that are reachable but not covered
798
Reachable functions
1500
Percentage of reachable functions covered
46.8%
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 4
/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/libqpdf/qpdf/Util.hh 15
/src/qpdf/libqpdf/QUtil.cc 12
/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 25
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 26
/src/qpdf/libqpdf/Buffer.cc 4
/src/qpdf/libqpdf/QPDF_json.cc 5
/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/global_private.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_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 972 20.0%
gold [1:9] 110 2.26%
yellow [10:29] 112 2.30%
greenyellow [30:49] 70 1.44%
lawngreen 50+ 3585 73.9%
All colors 4849 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 4743 qpdf::impl::Writer::write() call site: 04743 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
47 2970 qpdf::impl::Writer::doWriteSetup() call site: 02970
32 1267 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01267 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
26 2455 qpdf::BaseHandle::copy(bool) const call site: 02455 __cxa_allocate_exception
26 2870 qpdf::impl::Writer::generateID(bool) call site: 02870 __cxa_allocate_exception
18 3542 qpdf::impl::Writer::writeLinearized() call site: 03542 fopen
17 4227 qpdf::BaseHandle::unparse() const call site: 04227 __cxa_allocate_exception
16 2801 QPDF::Doc::Objects::parse(char const*) call site: 02801 __cxa_begin_catch
16 2907 qpdf::impl::Writer::setEncryptionParameters(char const*, char const*) call site: 02907 __cxa_allocate_exception
16 3018 qpdf::impl::Writer::doWriteSetup() call site: 03018
15 3794 deflate call site: 03794 crc32
15 4339 qpdf::impl::Writer::writeTrailer(qpdf::impl::Writer::trailer_e, int, bool, long long, int) call site: 04339 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
1403
Functions that are reachable but not covered
360
Reachable functions
2210
Percentage of reachable functions covered
83.71%
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 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 23
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/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/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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/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

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 1468 30.6%
gold [1:9] 96 2.00%
yellow [10:29] 88 1.83%
greenyellow [30:49] 102 2.12%
lawngreen 50+ 3043 63.4%
All colors 4797 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
224 3212 qpdf::impl::Writer::write() call site: 03212 __assert_fail
120 4466 qpdf::impl::Writer::writeObjectStream(QPDFObjectHandle) call site: 04466 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
81 3732 Pl_Flate::checkError(char const*, int) call site: 03732 deflate
47 4698 qpdf::impl::Writer::writeStandard() call site: 04698 _ZN4qpdf6Stream6LengthITkNSt3__18integralEmEEvT_
42 2910 qpdf::impl::Writer::generateID(bool) call site: 02910
39 4623 BitWriter::flush() call site: 04623
32 1269 qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool) call site: 01269 _ZN4qpdfeqITkNSt3__18integralExEEbT_RKNS_7IntegerE
30 4592 BitWriter::writeBits(unsigned long long, unsigned long) call site: 04592 __cxa_allocate_exception
27 4663 qpdf::pl::Count::~Count() call site: 04663 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralEiEERS1_T_
26 2457 qpdf::BaseHandle::copy(bool) const call site: 02457 __cxa_allocate_exception
23 3488 (anonymous namespace)::Pl_stack::popper() call site: 03488 fopen
23 3537 qpdf::impl::Writer::openObject(int) call site: 03537 _ZN4qpdf4impl6Writer5writeITkNSt3__18integralExEERS1_T_

Runtime coverage analysis

Covered functions
1340
Functions that are reachable but not covered
465
Reachable functions
2188
Percentage of reachable functions covered
78.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/qpdf_fuzzer.cc 9
/src/qpdf/libqpdf/Buffer.cc 5
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/src/qpdf/libqpdf/qpdf/global_private.hh 18
/src/qpdf/libqpdf/qpdf/Util.hh 36
/src/qpdf/libqpdf/Pl_PNGFilter.cc 13
/src/qpdf/libqpdf/Pl_RunLength.cc 1
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc 1
/src/qpdf/libqpdf/Pl_Flate.cc 10
/src/qpdf/include/qpdf/global.hh 3
/src/qpdf/libqpdf/global.cc 4
/src/qpdf/libqpdf/QUtil.cc 22
/src/qpdf/libqpdf/BufferInputSource.cc 1
/src/qpdf/include/qpdf/InputSource.hh 3
/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/QPDF.cc 27
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 43
/src/qpdf/libqpdf/QPDF_objects.cc 57
/src/qpdf/libqpdf/InputSource.cc 7
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/QPDFExc.cc 3
/src/qpdf/libqpdf/QPDFLogger.cc 8
/src/qpdf/include/qpdf/QPDFExc.hh 2
/src/qpdf/libqpdf/QPDFTokenizer.cc 33
/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 104
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/qpdf/libqpdf/QPDF_Array.cc 23
/src/qpdf/libqpdf/QPDFObjectHandle.cc 71
/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_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 82
/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/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

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 9520 1363
QPDFPageObjectHelper::flattenRotation(QPDFAcroFormDocumentHelper*) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 48 0 1085 191 142 1986 0 11527 1249
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 8726 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 8660 281
(anonymousnamespace)::InlineImageTracker::handleToken(QPDFTokenizer::Tokenconst&) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 43 0 373 68 52 1421 0 8343 267

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

Functions statically reachable by fuzzers
55.0%
1964 / 3561
Cyclomatic complexity statically reachable by fuzzers
71.0%
25643 / 36176

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/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/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)', '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)', '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=['FuzzHelper::doChecks()', 'Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e)', 'FuzzHelper::doChecks()', '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)', 'FuzzHelper::run()', 'Pl_TIFFPredictor::processRow()']

/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::doChecks()', '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::doChecks()', '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=['FuzzHelper::doChecks()', 'Pl_RunLength::Pl_RunLength(char const*, Pipeline*, Pl_RunLength::action_e)', 'FuzzHelper::doChecks()', '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/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)', 'FuzzHelper::run()', 'Pl_TIFFPredictor::processRow()']

/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::doChecks()', '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', 'deflateResetKeep', 'unsigned long QIntC::to_size(unsigned int const&)', 'deflateReset', 'Pl_Flate::finish()', 'unsigned long QIntC::to_ulong(unsigned long const&)', 'FuzzHelper::doChecks()', 'Pl_Flate::Pl_Flate(char const*, Pipeline*, Pl_Flate::action_e, unsigned int)']

/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', 'deflateResetKeep', 'unsigned long QIntC::to_size(unsigned int const&)', 'deflateReset', 'Pl_Flate::finish()', 'unsigned long QIntC::to_ulong(unsigned long const&)', 'FuzzHelper::doChecks()', 'Pl_Flate::Pl_Flate(char const*, Pipeline*, Pl_Flate::action_e, unsigned int)']

/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::set_uint32(qpdf_param_e, unsigned int)', 'qpdf_global_set_uint32', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'jinit_memory_mgr', 'jpeg_core_output_dimensions', 'jpeg_calc_output_dimensions']

/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=['std::__1::shared_ptr QPDFObject::create, std::__1::allocator >&>(std::__1::basic_string, std::__1::allocator >&)', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'QPDF::EncryptionParameters::interpretCF(qpdf::Name const&) const', 'QPDF::Doc::Pages::getAllPagesInternal(QPDFObjectHandle, QPDFObjGen::set&, QPDFObjGen::set&, bool, bool)', 'qpdf_global_set_uint32', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', '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']

/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=['std::__1::shared_ptr QPDFObject::create, std::__1::allocator >&>(std::__1::basic_string, std::__1::allocator >&)', 'qpdf::Stream::pipeStreamData(Pipeline*, bool*, int, qpdf_stream_decode_level_e, bool, bool)', 'QPDF::Doc::Pages::getAllPagesInternal(QPDFObjectHandle, QPDFObjGen::set&, QPDFObjGen::set&, bool, bool)', 'qpdf_global_set_uint32', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'qpdf::Tokenizer::inBeforeToken(char)', 'qpdf::BaseDictionary::dict() const', 'QPDF::Doc::Objects::parse(char const*)', 'long long QIntC::to_offset(unsigned long const&)']

/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::doChecks()', 'FuzzHelper::run()']

/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)', 'ObjTable::large_element(unsigned long)', 'qpdf::BaseHandle::copy(bool) const', 'QPDF::EncryptionParameters::interpretCF(qpdf::Name const&) const', 'qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)']

/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::pl::Count::~Count()', 'qpdf::BaseHandle::copy(bool) const']

/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::set_uint32(qpdf_param_e, unsigned int)', 'qpdf_global_set_uint32', 'qpdf::global::set_uint32(qpdf_param_e, unsigned int)', 'jinit_memory_mgr', 'jpeg_core_output_dimensions', 'jpeg_calc_output_dimensions']

/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_set_uint32', '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::global::set_uint32(qpdf_param_e, unsigned int)']

/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::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)', 'qpdf::impl::Writer::setEncryptionParameters(char const*, char const*)', 'qpdf::impl::Writer::doWriteSetup()']

/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::doWriteSetup()', 'qpdf::impl::Writer::writeStandard()', '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_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)', 'ObjTable::large_element(unsigned long)', 'qpdf::BaseHandle::copy(bool) const', 'qpdf::impl::Writer::unparseObject(QPDFObjectHandle, unsigned long, int, unsigned long, bool)', 'qpdf::impl::Writer::writeLinearized()', 'qpdf::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)', 'qpdf::impl::Writer::doWriteSetup()']

/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::doWriteSetup()', 'qpdf::impl::Writer::writeStandard()', '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_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_set_uint32', '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::global::set_uint32(qpdf_param_e, unsigned int)']

/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_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::BaseHandle::unparse() const', 'QPDF::Doc::Objects::parse(char const*)', 'qpdf::impl::Writer::setEncryptionParameters(char const*, char const*)', 'qpdf::impl::Writer::doWriteSetup()']

/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::pl::Count::~Count()', 'qpdf::BaseHandle::copy(bool) 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
Pl_Flate::checkError(charconst*,int) 35 17 48.57% ['qpdf_lin_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'flate_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_fuzzer', 'future_flate_fuzzer', 'qpdf_crypt_insecure_fuzzer']
deflate 257 73 28.40% ['qpdf_lin_fuzzer', 'qpdf_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'flate_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_flate_fuzzer', 'qpdf_crypt_insecure_fuzzer']
output_pass_setup 45 10 22.22% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
start_pass 173 39 22.54% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jinit_color_deconverter 236 111 47.03% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
j12init_color_deconverter 227 107 47.13% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
j16init_color_deconverter 227 94 41.40% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jpeg_resync_to_restart 34 6 17.64% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jpeg_core_output_dimensions 130 32 24.61% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
use_merged_upsample 38 6 15.78% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jinit_d_post_controller 39 20 51.28% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
j12init_d_post_controller 40 20 50.0% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
access_virt_sarray 59 31 52.54% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'qpdf_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
qpdf_global_set_uint32 54 7 12.96% ['qpdf_lin_fuzzer', 'future_dct_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_outlines_fuzzer', 'dct_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_outlines_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
qpdf::BaseHandle::unparse()const 73 16 21.91% ['qpdf_lin_fuzzer', 'future_qpdf_pages_fuzzer', 'qpdf_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_insecure_fuzzer']
qpdf::impl::Writer::interpretR3EncryptionParameters(bool,bool,bool,bool,bool,bool,qpdf_r3_print_e,qpdf_r3_modify_e) 46 16 34.78% ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', '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/include/qpdf/QTC.hh ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/zlib/zutil.c [] []
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh ['future_hex_fuzzer', 'hex_fuzzer'] []
/src/qpdf/libqpdf/AES_PDF_native.cc [] []
/src/qpdf/libqpdf/qpdf/Pl_Base64.hh [] []
/src/qpdf/libqpdf/QPDF_Stream.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/PDFVersion.cc [] []
/src/libjpeg-turbo/src/wrapper/../jidctflt.c [] []
/src/qpdf/libqpdf/QPDFCrypto_native.cc [] []
/src/libjpeg-turbo/src/wrapper/../jquant2.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/Buffer.cc ['future_lzw_fuzzer', 'lzw_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer']
/src/qpdf/libqpdf/sha2.c [] []
/src/qpdf/libqpdf/BitStream.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_TIFFPredictor.hh ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/libjpeg-turbo/src/jchuff.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFStreamFilter.hh [] []
/src/qpdf/libqpdf/QPDF_Dictionary.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jclhuff.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/usr/local/bin/../include/c++/v1/stdexcept ['future_lzw_fuzzer', 'tiffpredictor_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/libjpeg-turbo/src/jfdctflt.c [] []
/src/qpdf/libqpdf/MD5.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdmrgext.c [] []
/src/libjpeg-turbo/src/wrapper/../jcdctmgr.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/usr/local/bin/../include/c++/v1/__exception/exception.h ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/qpdf/libqpdf/QPDF_Array.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_LZWDecoder.cc ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/libjpeg-turbo/src/jcphuff.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jmemmgr.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/global.cc ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFSystemError.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_String.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/Pl_AES_PDF.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/SHA2_native.cc [] []
/src/qpdf/include/qpdf/QPDFNumberTreeObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/fuzz/qpdf_fuzzer.cc ['future_qpdf_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_fuzzer', 'qpdf_fuzzer']
/src/zlib/inflate.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdcoefct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDF_pages.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/fuzz/lzw_fuzzer.cc ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jmemnobs.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/include/qpdf/QUtil.hh ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jdmarker.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.hh ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jquant1.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jdphuff.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/sph/md_helper.c [] []
/src/qpdf/include/qpdf/QPDFSystemError.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/qpdf/libqpdf/Pl_Base64.cc [] []
/src/qpdf/libqpdf/Pl_PNGFilter.cc ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jccolext.c [] []
/src/qpdf/libqpdf/Pl_OStream.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jcparam.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jcsample.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/fuzz/tiffpredictor_fuzzer.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer']
/src/libjpeg-turbo/src/jcomapi.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/libjpeg-turbo/src/jdmaster.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/InputSource.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdlossls.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/fuzz/json_fuzzer.cc ['json_fuzzer', 'future_json_fuzzer'] ['json_fuzzer', 'future_json_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_SHA2.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFDocumentHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/Pl_ASCII85Decoder.cc ['ascii85_fuzzer', 'future_ascii85_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jccoefct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFObjGen.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/ResourceFinder.hh [] []
/usr/local/bin/../include/c++/v1/variant [] []
/src/qpdf/include/qpdf/JSON.hh ['json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer'] ['json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer']
/src/qpdf/libqpdf/QPDFAcroFormDocumentHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFExc.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_DCT.cc ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jclossls.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFObject.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdcolext.c [] []
/src/qpdf/libqpdf/qpdf/SecureRandomDataProvider.hh [] []
/src/qpdf/libqpdf/Pl_Discard.cc ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/global.hh ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['dct_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_ASCIIHexDecode.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_Count.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/RandomDataProvider.hh [] []
/src/qpdf/libqpdf/qpdf/global_private.hh ['future_runlength_fuzzer', 'runlength_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_runlength_fuzzer', 'runlength_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jcinit.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFUsage.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_Buffer.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDF_linearization.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/OffsetInputSource.cc [] []
/src/qpdf/libqpdf/QUtil.cc ['dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jcprepct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDFObjectHandle.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_Flate.cc ['flate_fuzzer', 'future_flate_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['flate_fuzzer', 'future_flate_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdpostct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/Pl_RunLength.cc ['future_runlength_fuzzer', 'runlength_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_runlength_fuzzer', 'runlength_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFStreamFilter.cc [] []
/src/qpdf/libqpdf/qpdf/Util.hh ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_FlateLzwDecode.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/BitWriter.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctfst.c [] []
/src/qpdf/libqpdf/QPDFMatrix.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_RC4.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/zlib/adler32.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFParser.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFObjectHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdapistd.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/zlib/inffast.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFParser.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/usr/local/bin/../include/c++/v1/sstream ['future_lzw_fuzzer', 'tiffpredictor_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jddctmgr.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jcmainct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/usr/local/bin/../include/c++/v1/optional [] []
/src/qpdf/libqpdf/QPDF_json.cc ['json_fuzzer', 'future_json_fuzzer'] ['json_fuzzer', 'future_json_fuzzer']
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/RC4.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/qpdf/libqpdf/qpdf/JSON_writer.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/sph/sph_types.h [] []
/src/qpdf/libqpdf/MD5_native.cc [] []
/src/qpdf/libqpdf/qpdf/InputSource_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/zlib/crc32.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jddiffct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jcdiffct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/jdarith.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/fuzz/flate_fuzzer.cc ['flate_fuzzer', 'future_flate_fuzzer'] ['flate_fuzzer', 'future_flate_fuzzer']
/src/qpdf/libqpdf/sha2big.c [] []
/src/libjpeg-turbo/src/wrapper/../jdmainct.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDF_encryption.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jccolor.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/Pl_RC4.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/zlib/deflate.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer']
/src/qpdf/include/qpdf/QIntC.hh ['future_lzw_fuzzer', 'tiffpredictor_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'tiffpredictor_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctint.c [] []
/src/qpdf/include/qpdf/InputSource.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdcolor.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/Pl_AES_PDF.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/ContentNormalizer.cc [] []
/src/libjpeg-turbo/src/jstdhuff.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/include/qpdf/Pipeline.hh ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/fuzz/runlength_fuzzer.cc ['future_runlength_fuzzer', 'runlength_fuzzer'] ['future_runlength_fuzzer', 'runlength_fuzzer']
/src/zlib/trees.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer']
/src/qpdf/include/qpdf/QPDFTokenizer.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFCrypto_native.hh [] []
/src/qpdf/include/qpdf/QPDFCryptoImpl.hh [] []
/src/qpdf/fuzz/pngpredictor_fuzzer.cc ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer']
/src/qpdf/libqpdf/SecureRandomDataProvider.cc [] []
/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc ['qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer'] ['qpdf_crypt_fuzzer', 'future_qpdf_crypt_fuzzer']
/src/qpdf/fuzz/qpdf_pages_fuzzer.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/RC4_native.cc [] []
/src/qpdf/libqpdf/QPDFWriter.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/ObjectHandle.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/QPDFLogger.hh [] []
/src/qpdf/libqpdf/Pl_TIFFPredictor.cc ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/fuzz/qpdf_lin_fuzzer.cc ['qpdf_lin_fuzzer', 'future_qpdf_lin_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_lin_fuzzer']
/src/qpdf/include/qpdf/QPDFUsage.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] []
/src/qpdf/include/qpdf/QPDFObjectHandle.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/ContentNormalizer.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDF_String.cc ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jcapistd.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/SF_DCTDecode.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/fuzz/hex_fuzzer.cc ['future_hex_fuzzer', 'hex_fuzzer'] ['future_hex_fuzzer', 'hex_fuzzer']
/src/qpdf/libqpdf/qpdf/NNTree.hh ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jdhuff.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFLogger.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jcmarker.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/ObjTable.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pl_StdioFile.cc [] []
/src/libjpeg-turbo/src/jdlhuff.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/FileInputSource.cc [] []
/src/qpdf/libqpdf/JSON.cc ['json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer'] ['json_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer']
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/ResourceFinder.cc [] []
/src/qpdf/libqpdf/QPDF.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_PNGFilter.hh ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jdinput.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jidctred.c [] []
/src/qpdf/libqpdf/qpdf/SF_ASCII85Decode.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/BufferInputSource.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_MD5.hh ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/SF_RunLengthDecode.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/Pl_ASCII85Decoder.hh ['ascii85_fuzzer', 'future_ascii85_fuzzer'] []
/src/qpdf/libqpdf/qpdf/QPDF_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/RC4.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jutils.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/NNTree.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/libjpeg-turbo/src/jerror.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdmainct.h [] []
/src/libjpeg-turbo/src/wrapper/../jfdctfst.c [] []
/src/libjpeg-turbo/src/jcmaster.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/qpdf/CryptoRandomDataProvider.hh [] []
/src/qpdf/fuzz/dct_fuzzer.cc ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/Pl_Concatenate.cc [] []
/src/qpdf/include/qpdf/Pl_DCT.hh [] []
/usr/local/bin/../include/c++/v1/__iterator/move_iterator.h [] []
/src/qpdf/libqpdf/qpdf/bits_functions.hh ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['tiffpredictor_fuzzer', 'future_tiffpredictor_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/wrapper/../jdmerge.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/libqpdf/QPDF_objects.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/OffsetInputSource.hh [] []
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.hh ['future_lzw_fuzzer', 'lzw_fuzzer'] ['future_lzw_fuzzer', 'lzw_fuzzer']
/src/qpdf/include/qpdf/QPDFExc.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/MD5.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/qpdf/AcroForm.hh ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/fuzz/ascii85_fuzzer.cc ['ascii85_fuzzer', 'future_ascii85_fuzzer'] ['ascii85_fuzzer', 'future_ascii85_fuzzer']
/src/qpdf/libqpdf/Pl_SHA2.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/qpdf/AES_PDF_native.hh [] []
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jcapimin.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/wrapper/../jfdctint.c [] []
/src/libjpeg-turbo/src/wrapper/../jdsample.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/qpdf/include/qpdf/QPDFXRefEntry.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/Pipeline.cc ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_lzw_fuzzer', 'pngpredictor_fuzzer', 'future_pngpredictor_fuzzer', 'future_runlength_fuzzer', 'tiffpredictor_fuzzer', 'ascii85_fuzzer', 'future_hex_fuzzer', 'runlength_fuzzer', 'lzw_fuzzer', 'future_tiffpredictor_fuzzer', 'future_ascii85_fuzzer', 'flate_fuzzer', 'future_flate_fuzzer', 'dct_fuzzer', 'json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'hex_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'future_dct_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/src/qpdf/libqpdf/Pl_ASCIIHexDecoder.cc ['future_hex_fuzzer', 'hex_fuzzer'] ['future_hex_fuzzer', 'hex_fuzzer']
/src/qpdf/libqpdf/QPDFTokenizer.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/SF_FlateLzwDecode.cc [] []
/src/zlib/inftrees.c ['flate_fuzzer', 'future_flate_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/rijndael.cc [] []
/src/qpdf/libqpdf/CryptoRandomDataProvider.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/libjpeg-turbo/src/jcarith.c ['dct_fuzzer', 'future_dct_fuzzer'] []
/src/libjpeg-turbo/src/jdapimin.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/QPDFCryptoProvider.cc ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer'] ['future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_pages_fuzzer', 'future_qpdf_pages_fuzzer']
/src/qpdf/include/qpdf/QPDFWriter.hh [] []
/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer'] ['qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer']
/src/libjpeg-turbo/simd/jsimd.c ['dct_fuzzer', 'future_dct_fuzzer'] ['dct_fuzzer', 'future_dct_fuzzer']
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer'] ['json_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_pages_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_pages_fuzzer', 'future_json_fuzzer', 'future_qpdf_crypt_fuzzer', 'qpdf_fuzzer']

Directories in report

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

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
future_lzw_fuzzer fuzzerLogFile-0-3c9R2arin2.data fuzzerLogFile-0-3c9R2arin2.data.yaml future_lzw_fuzzer.covreport
pngpredictor_fuzzer fuzzerLogFile-0-faoKyhCOxd.data fuzzerLogFile-0-faoKyhCOxd.data.yaml pngpredictor_fuzzer.covreport
future_pngpredictor_fuzzer fuzzerLogFile-0-O19PK5tatJ.data fuzzerLogFile-0-O19PK5tatJ.data.yaml future_pngpredictor_fuzzer.covreport
future_runlength_fuzzer fuzzerLogFile-0-ZdNFqGSR3W.data fuzzerLogFile-0-ZdNFqGSR3W.data.yaml future_runlength_fuzzer.covreport
tiffpredictor_fuzzer fuzzerLogFile-0-sSFM4VL6J8.data fuzzerLogFile-0-sSFM4VL6J8.data.yaml tiffpredictor_fuzzer.covreport
ascii85_fuzzer fuzzerLogFile-0-rQrZuvDeBU.data fuzzerLogFile-0-rQrZuvDeBU.data.yaml ascii85_fuzzer.covreport
future_hex_fuzzer fuzzerLogFile-0-Fab9ZQfTAY.data fuzzerLogFile-0-Fab9ZQfTAY.data.yaml future_hex_fuzzer.covreport
runlength_fuzzer fuzzerLogFile-0-x7upmgSPez.data fuzzerLogFile-0-x7upmgSPez.data.yaml runlength_fuzzer.covreport
lzw_fuzzer fuzzerLogFile-0-nNkN5pwJ9V.data fuzzerLogFile-0-nNkN5pwJ9V.data.yaml lzw_fuzzer.covreport
future_tiffpredictor_fuzzer fuzzerLogFile-0-v161nnvZr4.data fuzzerLogFile-0-v161nnvZr4.data.yaml future_tiffpredictor_fuzzer.covreport
future_ascii85_fuzzer fuzzerLogFile-0-jQ5kE4nZXN.data fuzzerLogFile-0-jQ5kE4nZXN.data.yaml future_ascii85_fuzzer.covreport
flate_fuzzer fuzzerLogFile-0-QoPf6iEyNP.data fuzzerLogFile-0-QoPf6iEyNP.data.yaml flate_fuzzer.covreport
future_flate_fuzzer fuzzerLogFile-0-oB3D3fhPzv.data fuzzerLogFile-0-oB3D3fhPzv.data.yaml future_flate_fuzzer.covreport
dct_fuzzer fuzzerLogFile-0-xJw6eYWW2h.data fuzzerLogFile-0-xJw6eYWW2h.data.yaml dct_fuzzer.covreport
json_fuzzer fuzzerLogFile-0-aY5lVzzKRL.data fuzzerLogFile-0-aY5lVzzKRL.data.yaml json_fuzzer.covreport
future_qpdf_outlines_fuzzer fuzzerLogFile-0-japutvOYwf.data fuzzerLogFile-0-japutvOYwf.data.yaml future_qpdf_outlines_fuzzer.covreport
qpdf_outlines_fuzzer fuzzerLogFile-0-dn2OPjPXeE.data fuzzerLogFile-0-dn2OPjPXeE.data.yaml qpdf_outlines_fuzzer.covreport
hex_fuzzer fuzzerLogFile-0-ifXVJFQWES.data fuzzerLogFile-0-ifXVJFQWES.data.yaml hex_fuzzer.covreport
qpdf_lin_fuzzer fuzzerLogFile-0-e59oWkUlrn.data fuzzerLogFile-0-e59oWkUlrn.data.yaml qpdf_lin_fuzzer.covreport
future_qpdf_fuzzer fuzzerLogFile-0-7n7MzRw45K.data fuzzerLogFile-0-7n7MzRw45K.data.yaml future_qpdf_fuzzer.covreport
future_dct_fuzzer fuzzerLogFile-0-IYX3tExl1p.data fuzzerLogFile-0-IYX3tExl1p.data.yaml future_dct_fuzzer.covreport
qpdf_pages_fuzzer fuzzerLogFile-0-pjuRGeWszP.data fuzzerLogFile-0-pjuRGeWszP.data.yaml qpdf_pages_fuzzer.covreport
qpdf_crypt_fuzzer fuzzerLogFile-0-XiVZz5ZpsV.data fuzzerLogFile-0-XiVZz5ZpsV.data.yaml qpdf_crypt_fuzzer.covreport
qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-gExe9XkZ5L.data fuzzerLogFile-0-gExe9XkZ5L.data.yaml qpdf_crypt_insecure_fuzzer.covreport
future_qpdf_lin_fuzzer fuzzerLogFile-0-sI8oODZzuA.data fuzzerLogFile-0-sI8oODZzuA.data.yaml future_qpdf_lin_fuzzer.covreport
future_qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-6isCdfGB4a.data fuzzerLogFile-0-6isCdfGB4a.data.yaml future_qpdf_crypt_insecure_fuzzer.covreport
future_qpdf_pages_fuzzer fuzzerLogFile-0-xng2W9yewR.data fuzzerLogFile-0-xng2W9yewR.data.yaml future_qpdf_pages_fuzzer.covreport
future_json_fuzzer fuzzerLogFile-0-sqpbbqtdQq.data fuzzerLogFile-0-sqpbbqtdQq.data.yaml future_json_fuzzer.covreport
future_qpdf_crypt_fuzzer fuzzerLogFile-0-vpUFkeLCWw.data fuzzerLogFile-0-vpUFkeLCWw.data.yaml future_qpdf_crypt_fuzzer.covreport
qpdf_fuzzer fuzzerLogFile-0-GIPh4fl7Ly.data fuzzerLogFile-0-GIPh4fl7Ly.data.yaml qpdf_fuzzer.covreport