Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues
Report generation date: 2025-07-01

Project overview: qpdf

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
48.0%
1471 / 3040
Cyclomatic complexity statically reachable by fuzzers
56.9%
19512 / 34159
Runtime code coverage of functions
50.0%
1505 / 3040

Warning: The number of runtime covered functions are larger than the number of reachable functions. This means that Fuzz Introspector found there are more functions covered at runtime than what is considered reachable based on the static analysis. This is a limitation in the analysis as anything covered at runtime is by definition reachable by the fuzzers.
This is likely due to a limitation in the static analysis. In this case, the count of functions covered at runtime is the true value, which means this is what should be considered "achieved" by the fuzzer.

Use the project functions table below to query all functions that were not covered at runtime.

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
future_tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 79 36 11 13 258 197 tiffpredictor_fuzzer.cc
tiffpredictor_fuzzer /src/qpdf/fuzz/tiffpredictor_fuzzer.cc 79 36 11 13 258 197 tiffpredictor_fuzzer.cc
hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 40 28 5 7 123 77 hex_fuzzer.cc
future_flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 130 415 11 15 2636 1001 flate_fuzzer.cc
dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 231 517 10 53 3997 1680 dct_fuzzer.cc
future_lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 72 41 10 11 267 182 lzw_fuzzer.cc
future_runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 53 25 6 6 177 100 runlength_fuzzer.cc
runlength_fuzzer /src/qpdf/fuzz/runlength_fuzzer.cc 53 25 6 6 177 100 runlength_fuzzer.cc
future_hex_fuzzer /src/qpdf/fuzz/hex_fuzzer.cc 40 28 5 7 123 77 hex_fuzzer.cc
ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 41 26 5 7 127 76 ascii85_fuzzer.cc
flate_fuzzer /src/qpdf/fuzz/flate_fuzzer.cc 130 415 11 15 2636 1001 flate_fuzzer.cc
future_ascii85_fuzzer /src/qpdf/fuzz/ascii85_fuzzer.cc 41 26 5 7 127 76 ascii85_fuzzer.cc
future_pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 57 29 8 8 195 142 pngpredictor_fuzzer.cc
lzw_fuzzer /src/qpdf/fuzz/lzw_fuzzer.cc 72 41 10 11 267 182 lzw_fuzzer.cc
future_dct_fuzzer /src/qpdf/fuzz/dct_fuzzer.cc 231 517 10 53 3997 1680 dct_fuzzer.cc
future_qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1497 2123 40 80 12468 8898 qpdf_outlines_fuzzer.cc
pngpredictor_fuzzer /src/qpdf/fuzz/pngpredictor_fuzzer.cc 57 29 8 8 195 142 pngpredictor_fuzzer.cc
qpdf_outlines_fuzzer /src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 1497 2123 40 80 12468 8898 qpdf_outlines_fuzzer.cc
future_json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1386 2130 40 66 11635 8140 json_fuzzer.cc
json_fuzzer /src/qpdf/fuzz/json_fuzzer.cc 1386 2130 40 66 11635 8140 json_fuzzer.cc
qpdf_page_fuzzer /src/qpdf/fuzz/qpdf_page_fuzzer.cc 1987 1924 40 100 18294 13152 qpdf_page_fuzzer.cc
qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 1763 2133 40 82 16110 11065 qpdf_fuzzer.cc
qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 1787 2121 40 82 16318 11191 qpdf_crypt_fuzzer.cc
qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 1787 2121 40 82 16315 11190 qpdf_crypt_insecure_fuzzer.cc
future_qpdf_crypt_fuzzer /src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 1787 2121 40 82 16318 11191 qpdf_crypt_fuzzer.cc
future_qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 1765 2132 40 82 16117 11068 qpdf_lin_fuzzer.cc
future_qpdf_crypt_insecure_fuzzer /src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc 1787 2121 40 82 16315 11190 qpdf_crypt_insecure_fuzzer.cc
qpdf_lin_fuzzer /src/qpdf/fuzz/qpdf_lin_fuzzer.cc 1765 2132 40 82 16117 11068 qpdf_lin_fuzzer.cc
future_qpdf_page_fuzzer /src/qpdf/fuzz/qpdf_page_fuzzer.cc 1987 1924 40 100 18294 13152 qpdf_page_fuzzer.cc
future_qpdf_fuzzer /src/qpdf/fuzz/qpdf_fuzzer.cc 1763 2133 40 82 16110 11065 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_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 49 57.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 36 42.3%
All colors 85 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
10 10 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::out_of_range::out_of_range[abi:ne180100](char const*)', '__cxa_free_exception']

10 10 read_bits(unsignedcharconst*&,unsignedlong&,unsignedlong&,unsignedlong) call site: 00000 /src/qpdf/libqpdf/qpdf/bits_functions.hh:34
10 10 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::out_of_range::out_of_range[abi:ne180100](char const*)', '__cxa_free_exception']

10 10 write_bits(unsignedchar&,unsignedlong&,unsignedlonglong,unsignedlong,Pipeline*) call site: 00000 /src/qpdf/libqpdf/qpdf/bits_functions.hh:89
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception', 'std::runtime_error::runtime_error(char const*)']

8 8 BitStream::reset() call site: 00000 /src/qpdf/libqpdf/BitStream.cc:21
0 0 None 32 34 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:28
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:31
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:34
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:38
0 0 None 0 86 Pl_TIFFPredictor::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:85
0 0 None 0 2 Pl_TIFFPredictor::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:107

Runtime coverage analysis

Covered functions
28
Functions that are reachable but not covered
28
Reachable functions
79
Percentage of reachable functions covered
64.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/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/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: 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 49 57.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 36 42.3%
All colors 85 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
10 10 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::out_of_range::out_of_range[abi:ne180100](char const*)', '__cxa_free_exception']

10 10 read_bits(unsignedcharconst*&,unsignedlong&,unsignedlong&,unsignedlong) call site: 00000 /src/qpdf/libqpdf/qpdf/bits_functions.hh:34
10 10 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::out_of_range::out_of_range[abi:ne180100](char const*)', '__cxa_free_exception']

10 10 write_bits(unsignedchar&,unsignedlong&,unsignedlonglong,unsignedlong,Pipeline*) call site: 00000 /src/qpdf/libqpdf/qpdf/bits_functions.hh:89
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', '__cxa_free_exception', 'std::runtime_error::runtime_error(char const*)']

8 8 BitStream::reset() call site: 00000 /src/qpdf/libqpdf/BitStream.cc:21
0 0 None 32 34 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:28
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:31
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:34
0 0 None 8 10 Pl_TIFFPredictor::Pl_TIFFPredictor(charconst*,Pipeline*,Pl_TIFFPredictor::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:38
0 0 None 0 86 Pl_TIFFPredictor::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:85
0 0 None 0 2 Pl_TIFFPredictor::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_TIFFPredictor.cc:107

Runtime coverage analysis

Covered functions
28
Functions that are reachable but not covered
28
Reachable functions
79
Percentage of reachable functions covered
64.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/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/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: 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 6 16.6%
gold [1:9] 1 2.77%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 29 80.5%
All colors 36 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
13
Reachable functions
40
Percentage of reachable functions covered
67.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/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/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.hh 1

Fuzzer: future_flate_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 226 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 226 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
225 0 EP call site: 00000 deflate

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/flate_fuzzer.cc 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/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 10
/src/zlib/inftrees.c 1
/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 325 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 325 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
324 0 EP call site: 00000 jpeg_start_decompress

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/dct_fuzzer.cc 4
/src/qpdf/libqpdf/Pl_DCT.cc 13
/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/x86_64/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: 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 31 36.0%
gold [1:9] 5 5.81%
yellow [10:29] 5 5.81%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 45 52.3%
All colors 86 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 8 Pl_LZWDecoder::getFirstChar(unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:86
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 8 Pl_LZWDecoder::addToTable(unsignedchar) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:111
0 0 None 0 0 Buffer::Members::Members(unsignedlong,unsignedchar*,bool) call site: 00000 /src/qpdf/libqpdf/Buffer.cc:30
0 0 None 0 0 Pl_LZWDecoder::Pl_LZWDecoder(charconst*,Pipeline*,bool) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:13

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/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/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 5
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.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 27 44.2%
gold [1:9] 0 0.0%
yellow [10:29] 5 8.19%
greenyellow [30:49] 5 8.19%
lawngreen 50+ 24 39.3%
All colors 61 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
29 29 1 :

['Pl_RunLength::encode(unsigned char const*, unsigned long)']

29 29 Pl_RunLength::write(unsignedcharconst*,unsignedlong) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:51
20 20 1 :

['Pl_RunLength::flush_encode()']

20 24 Pl_RunLength::finish() call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:166
0 0 None 0 0 Pl_RunLength::Pl_RunLength(charconst*,Pipeline*,Pl_RunLength::action_e) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:32

Runtime coverage analysis

Covered functions
21
Functions that are reachable but not covered
20
Reachable functions
53
Percentage of reachable functions covered
62.26%
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/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: 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 27 44.2%
gold [1:9] 0 0.0%
yellow [10:29] 5 8.19%
greenyellow [30:49] 5 8.19%
lawngreen 50+ 24 39.3%
All colors 61 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
29 29 1 :

['Pl_RunLength::encode(unsigned char const*, unsigned long)']

29 29 Pl_RunLength::write(unsignedcharconst*,unsignedlong) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:51
20 20 1 :

['Pl_RunLength::flush_encode()']

20 24 Pl_RunLength::finish() call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:166
0 0 None 0 0 Pl_RunLength::Pl_RunLength(charconst*,Pipeline*,Pl_RunLength::action_e) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:32

Runtime coverage analysis

Covered functions
21
Functions that are reachable but not covered
20
Reachable functions
53
Percentage of reachable functions covered
62.26%
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/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: 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 6 16.6%
gold [1:9] 1 2.77%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 29 80.5%
All colors 36 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
13
Reachable functions
40
Percentage of reachable functions covered
67.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/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/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCIIHexDecoder.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 6 12.5%
gold [1:9] 6 12.5%
yellow [10:29] 5 10.4%
greenyellow [30:49] 5 10.4%
lawngreen 50+ 26 54.1%
All colors 48 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
14
Reachable functions
41
Percentage of reachable functions covered
65.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/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/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 226 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 226 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
225 0 EP call site: 00000 deflate

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/flate_fuzzer.cc 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/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 10
/src/zlib/inftrees.c 1
/src/zlib/inffast.c 1

Fuzzer: future_ascii85_fuzzer

Call tree

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

Call tree overview bitmap:

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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
14
Reachable functions
41
Percentage of reachable functions covered
65.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/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/include/qpdf/Pipeline.hh 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Pl_ASCII85Decoder.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 27 43.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 35 56.4%
All colors 62 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:47
6 6 1 :

['Pl_PNGFilter::encodeRow()']

6 6 Pl_PNGFilter::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:98
0 0 None 32 38 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:31
0 0 None 8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:34
0 0 None 8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:44

Runtime coverage analysis

Covered functions
25
Functions that are reachable but not covered
12
Reachable functions
57
Percentage of reachable functions covered
78.95%
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/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: 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 31 36.0%
gold [1:9] 5 5.81%
yellow [10:29] 5 5.81%
greenyellow [30:49] 5 5.81%
lawngreen 50+ 40 46.5%
All colors 86 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 8 Pl_LZWDecoder::getFirstChar(unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:86
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 8 Pl_LZWDecoder::addToTable(unsignedchar) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:111
0 0 None 0 0 Buffer::Members::Members(unsignedlong,unsignedchar*,bool) call site: 00000 /src/qpdf/libqpdf/Buffer.cc:30
0 0 None 0 0 Pl_LZWDecoder::Pl_LZWDecoder(charconst*,Pipeline*,bool) call site: 00000 /src/qpdf/libqpdf/Pl_LZWDecoder.cc:13

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/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/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 5
/src/qpdf/libqpdf/qpdf/Pl_LZWDecoder.hh 1

Fuzzer: future_dct_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 325 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 325 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
324 0 EP call site: 00000 jpeg_start_decompress

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/dct_fuzzer.cc 4
/src/qpdf/libqpdf/Pl_DCT.cc 13
/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/x86_64/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: 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 3438 99.8%
gold [1:9] 3 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 3442 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
2277 1164 QPDFObjectHandle::newNull() call site: 01164 __dynamic_cast
796 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 7
/src/qpdf/libqpdf/Buffer.cc 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/QPDF.cc 18
/src/qpdf/libqpdf/QPDF_objects.cc 45
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 3
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 26
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 18
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 57
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 21
/src/qpdf/libqpdf/QPDFObjectHandle.cc 69
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 3
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 3
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 5
/src/qpdf/include/qpdf/QPDFObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFObjectHelper.cc 1
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDF_String.cc 2
/src/qpdf/libqpdf/QPDFNameTreeObjectHelper.cc 7
/src/qpdf/libqpdf/NNTree.cc 28
/src/qpdf/libqpdf/qpdf/NNTree.hh 4
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.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 27 43.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 35 56.4%
All colors 62 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 4 :

['__cxa_allocate_exception', '__cxa_throw', 'std::runtime_error::runtime_error(char const*)', '__cxa_free_exception']

8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:47
6 6 1 :

['Pl_PNGFilter::encodeRow()']

6 6 Pl_PNGFilter::processRow() call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:98
0 0 None 32 38 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:31
0 0 None 8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:34
0 0 None 8 10 Pl_PNGFilter::Pl_PNGFilter(charconst*,Pipeline*,Pl_PNGFilter::action_e,unsignedint,unsignedint,unsignedint) call site: 00000 /src/qpdf/libqpdf/Pl_PNGFilter.cc:44

Runtime coverage analysis

Covered functions
25
Functions that are reachable but not covered
12
Reachable functions
57
Percentage of reachable functions covered
78.95%
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/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: 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 3438 99.8%
gold [1:9] 3 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 3442 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
2277 1164 QPDFObjectHandle::newNull() call site: 01164 __dynamic_cast
796 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_outlines_fuzzer.cc 7
/src/qpdf/libqpdf/Buffer.cc 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/QPDF.cc 18
/src/qpdf/libqpdf/QPDF_objects.cc 45
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 3
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 26
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 18
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 57
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 21
/src/qpdf/libqpdf/QPDFObjectHandle.cc 69
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 3
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 3
/src/qpdf/include/qpdf/QPDFOutlineObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFOutlineObjectHelper.cc 5
/src/qpdf/include/qpdf/QPDFObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFObjectHelper.cc 1
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDF_String.cc 2
/src/qpdf/libqpdf/QPDFNameTreeObjectHelper.cc 7
/src/qpdf/libqpdf/NNTree.cc 28
/src/qpdf/libqpdf/qpdf/NNTree.hh 4
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.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 3126 99.8%
gold [1:9] 3 0.09%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.03%
All colors 3130 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
1636 1493 QPDFObjectHandle::newNull() call site: 01493 __dynamic_cast
791 700 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00700 __cxa_allocate_exception
699 0 EP call site: 00000 __cxa_allocate_exception

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/json_fuzzer.cc 4
/src/qpdf/libqpdf/JSON.cc 28
/src/qpdf/libqpdf/BufferInputSource.cc 4
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/Buffer.cc 9
/src/qpdf/include/qpdf/QIntC.hh 43
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Util.hh 3
/src/qpdf/libqpdf/QUtil.cc 13
/src/qpdf/include/qpdf/JSON.hh 7
/src/qpdf/libqpdf/QPDF.cc 23
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_json.cc 5
/src/qpdf/libqpdf/QPDF_objects.cc 45
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 56
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 48
/src/qpdf/libqpdf/QPDF_Array.cc 12
/src/qpdf/libqpdf/QPDFObjectHandle.cc 67
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 12
/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/Pl_Buffer.cc 5
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2

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 3126 99.8%
gold [1:9] 3 0.09%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.03%
All colors 3130 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
1636 1493 QPDFObjectHandle::newNull() call site: 01493 __dynamic_cast
791 700 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00700 __cxa_allocate_exception
699 0 EP call site: 00000 __cxa_allocate_exception

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/json_fuzzer.cc 4
/src/qpdf/libqpdf/JSON.cc 28
/src/qpdf/libqpdf/BufferInputSource.cc 4
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/libqpdf/Buffer.cc 9
/src/qpdf/include/qpdf/QIntC.hh 43
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/include/qpdf/QTC.hh 1
/src/qpdf/libqpdf/qpdf/Util.hh 3
/src/qpdf/libqpdf/QUtil.cc 13
/src/qpdf/include/qpdf/JSON.hh 7
/src/qpdf/libqpdf/QPDF.cc 23
/src/qpdf/libqpdf/QPDFTokenizer.cc 34
/src/qpdf/libqpdf/QPDF_json.cc 5
/src/qpdf/libqpdf/QPDF_objects.cc 45
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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/libqpdf/qpdf/InputSource_private.hh 8
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 56
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 48
/src/qpdf/libqpdf/QPDF_Array.cc 12
/src/qpdf/libqpdf/QPDFObjectHandle.cc 67
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 12
/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/Pl_Buffer.cc 5
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2

Fuzzer: qpdf_page_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 5197 99.9%
gold [1:9] 3 0.05%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.01%
All colors 5201 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
4037 1163 QPDFObjectHandle::newNull() call site: 01163 __dynamic_cast
795 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

Covered functions
6
Functions that are reachable but not covered
1972
Reachable functions
1987
Percentage of reachable functions covered
0.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_page_fuzzer.cc 8
/src/qpdf/libqpdf/Buffer.cc 9
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 6
/src/qpdf/include/qpdf/InputSource.hh 4
/src/qpdf/include/qpdf/QIntC.hh 54
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/QPDF.cc 20
/src/qpdf/libqpdf/QPDF_objects.cc 46
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 4
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 29
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 30
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 24
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 62
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 24
/src/qpdf/libqpdf/QPDFObjectHandle.cc 112
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 14
/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 19
/src/qpdf/libqpdf/Pl_Buffer.cc 6
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2
/src/qpdf/libqpdf/QPDFPageDocumentHelper.cc 4
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc 3
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh 2
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 4
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 3
/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 8
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh 2
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc 30
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh 2
/src/qpdf/libqpdf/QPDF_String.cc 6
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc 9
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc 7
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc 3
/src/qpdf/libqpdf/QPDFMatrix.cc 11
/src/qpdf/libqpdf/QPDFNumberTreeObjectHelper.cc 7
/src/qpdf/libqpdf/NNTree.cc 28
/src/qpdf/libqpdf/qpdf/NNTree.hh 4
/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/libqpdf/QPDFNameTreeObjectHelper.cc 7
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.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 4492 99.9%
gold [1:9] 3 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 4496 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
3331 1164 QPDFObjectHandle::newNull() call site: 01164 __dynamic_cast
796 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

Covered functions
6
Functions that are reachable but not covered
1748
Reachable functions
1763
Percentage of reachable functions covered
0.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_fuzzer.cc 9
/src/qpdf/libqpdf/Buffer.cc 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 43
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 62
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.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 4536 99.9%
gold [1:9] 3 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 4540 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
3376 1163 QPDFObjectHandle::newNull() call site: 01163 __dynamic_cast
795 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

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

Files reached

filename functions hit
/src/qpdf/fuzz/qpdf_crypt_fuzzer.cc 9
/src/qpdf/libqpdf/Buffer.cc 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 52
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 65
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.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 1783 39.2%
gold [1:9] 145 3.19%
yellow [10:29] 97 2.13%
greenyellow [30:49] 28 0.61%
lawngreen 50+ 2489 54.7%
All colors 4542 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
9657 9657 1 :

['QPDFWriter::writeLinearized()']

9659 9701 QPDFWriter::write() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2265
8194 8194 1 :

['QPDFWriter::writeObjectStream(QPDFObjectHandle)']

8202 8206 QPDFWriter::writeObject(QPDFObjectHandle,int) call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1799
7587 7587 1 :

['QPDFWriter::copyEncryptionParameters(QPDF&)']

22442 44727 QPDFWriter::doWriteSetup() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2159
7307 7307 1 :

['QPDFWriter::enqueueObjectsPCLm()']

7323 32321 QPDFWriter::writeStandard() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:3049
7150 7152 9 :

['std::__1::__wrap_iter ::operator++[abi:ne180100]()', 'QPDF::getAllObjects()', 'std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)', 'QTC::TC(char const*, char const*, int)', 'std::__1::vector >::~vector[abi:ne180100]()', 'std::__1::vector >::begin[abi:ne180100]()', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::vector >::end[abi:ne180100]()']

7194 71518 QPDFWriter::enqueueObjectsStandard() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2951
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 21407 QPDFObjectHandle::as_array(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:445
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7139 QPDFObjectHandle::as_dictionary(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:462
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7137 QPDFObjectHandle::as_stream(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:475
252 474 6 :

['inflate_table', 'adler32', 'fixedtables', 'inflate_fast', 'crc32', 'updatewindow']

252 474 inflate call site: 00000 /src/zlib/inflate.c:817
60 60 1 :

['do_sarray_io']

60 62 access_virt_sarray call site: 00000 /src/libjpeg-turbo/src/jmemmgr.c:941
36 50074 28 :

['std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator*[abi:ne180100]() const', 'QUtil::get_current_time()', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100]()', 'std::__1::to_string(long)', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](char const*)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', '__cxa_allocate_exception', 'qpdf::Dictionary::~Dictionary()', 'MD5::encodeString(char const*)', '__cxa_throw', 'qpdf::BaseDictionary::end()', 'std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator++[abi:ne180100]()', 'MD5::digest(unsigned char*)', 'MD5::~MD5()', 'QPDFObjectHandle::isString() const', 'QPDFObjectHandle::as_dictionary(qpdf::typed) const', 'qpdf::BaseDictionary::begin()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](std::__1::basic_string , std::__1::allocator > const&)', 'QTC::TC(char const*, char const*, int)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', '__cxa_free_exception', 'std::__1::operator!=[abi:ne180100](std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&, std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&)', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100](char const*, unsigned long)', 'std::runtime_error::runtime_error(char const*)', 'MD5::MD5()', 'QPDFObjectHandle::getStringValue() const']

52 57242 QPDFWriter::generateID() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1870
34 28594 16 :

['std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&)', 'QPDFObjectHandle::getIntValue() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'QPDFObjectHandle::replaceKey(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle const&)', 'QPDFObjectHandle::newInteger(long long)', 'QPDFObjGen::unparse(char) const', 'QPDFObjectHandle::StreamDataProvider::supportsRetry()', 'std::__1::to_string(long long)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'Pl_Count::~Pl_Count()', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Pl_Count::getCount() const', 'Pl_Count::Pl_Count(char const*, Pipeline*)']

58 29223 qpdf::Stream::pipeStreamData(Pipeline*,bool*,int,qpdf_stream_decode_level_e,bool,bool) call site: 00000 /src/qpdf/libqpdf/QPDF_Stream.cc:531

Runtime coverage analysis

Covered functions
1129
Functions that are reachable but not covered
424
Reachable functions
1787
Percentage of reachable functions covered
76.27%
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 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 52
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 65
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1

Fuzzer: future_qpdf_crypt_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1194 26.2%
gold [1:9] 139 3.06%
yellow [10:29] 74 1.62%
greenyellow [30:49] 35 0.77%
lawngreen 50+ 3098 68.2%
All colors 4540 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
7587 7587 1 :

['QPDFWriter::copyEncryptionParameters(QPDF&)']

15053 44727 QPDFWriter::doWriteSetup() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2159
252 474 6 :

['inflate_table', 'adler32', 'fixedtables', 'inflate_fast', 'crc32', 'updatewindow']

252 474 inflate call site: 00000 /src/zlib/inflate.c:817
47 47 1 :

['QPDFWriter::computeDeterministicIDData()']

63 7685 QPDFWriter::writeTrailer(QPDFWriter::trailer_e,int,bool,longlong,int) call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1224
36 50074 28 :

['std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator*[abi:ne180100]() const', 'QUtil::get_current_time()', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100]()', 'std::__1::to_string(long)', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](char const*)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', '__cxa_allocate_exception', 'qpdf::Dictionary::~Dictionary()', 'MD5::encodeString(char const*)', '__cxa_throw', 'qpdf::BaseDictionary::end()', 'std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator++[abi:ne180100]()', 'MD5::digest(unsigned char*)', 'MD5::~MD5()', 'QPDFObjectHandle::isString() const', 'QPDFObjectHandle::as_dictionary(qpdf::typed) const', 'qpdf::BaseDictionary::begin()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](std::__1::basic_string , std::__1::allocator > const&)', 'QTC::TC(char const*, char const*, int)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', '__cxa_free_exception', 'std::__1::operator!=[abi:ne180100](std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&, std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&)', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100](char const*, unsigned long)', 'std::runtime_error::runtime_error(char const*)', 'MD5::MD5()', 'QPDFObjectHandle::getStringValue() const']

52 57242 QPDFWriter::generateID() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1870
34 28594 16 :

['std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&)', 'QPDFObjectHandle::getIntValue() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'QPDFObjectHandle::replaceKey(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle const&)', 'QPDFObjectHandle::newInteger(long long)', 'QPDFObjGen::unparse(char) const', 'QPDFObjectHandle::StreamDataProvider::supportsRetry()', 'std::__1::to_string(long long)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'Pl_Count::~Pl_Count()', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Pl_Count::getCount() const', 'Pl_Count::Pl_Count(char const*, Pipeline*)']

58 29223 qpdf::Stream::pipeStreamData(Pipeline*,bool*,int,qpdf_stream_decode_level_e,bool,bool) call site: 00000 /src/qpdf/libqpdf/QPDF_Stream.cc:531
29 29 1 :

['Pl_RunLength::encode(unsigned char const*, unsigned long)']

29 29 Pl_RunLength::write(unsignedcharconst*,unsignedlong) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:51
28 28 1 :

['do_barray_io']

28 30 access_virt_barray call site: 00000 /src/libjpeg-turbo/src/jmemmgr.c:1025
21 21 1 :

['crc32']

579 630 deflate call site: 00000 /src/zlib/deflate.c:1160
21 21 1 :

['crc32']

21 21 read_buf call site: 00000 /src/zlib/deflate.c:227
20 20 1 :

['Pl_RunLength::flush_encode()']

20 24 Pl_RunLength::finish() call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:166
20 20 4 :

['__cxa_allocate_exception', 'QPDFExc::QPDFExc(QPDFExc const&)', '__cxa_throw', '__cxa_free_exception']

20 20 QPDFParser::warn(QPDFExcconst&)const call site: 00000 /src/qpdf/libqpdf/QPDFParser.cc:649
14 14 1 :

['sha384_short']

14 23 sph_sha384 call site: 00000 /src/qpdf/libqpdf/sph/md_helper.c:191

Runtime coverage analysis

Covered functions
1213
Functions that are reachable but not covered
281
Reachable functions
1787
Percentage of reachable functions covered
84.28%
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 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 52
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 65
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.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 1251 27.8%
gold [1:9] 129 2.86%
yellow [10:29] 80 1.77%
greenyellow [30:49] 87 1.93%
lawngreen 50+ 2949 65.5%
All colors 4496 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 21407 QPDFObjectHandle::as_array(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:445
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7139 QPDFObjectHandle::as_dictionary(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:462
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7137 QPDFObjectHandle::as_stream(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:475
252 474 6 :

['inflate_table', 'adler32', 'fixedtables', 'inflate_fast', 'crc32', 'updatewindow']

252 474 inflate call site: 00000 /src/zlib/inflate.c:817
88 164147 11 :

['QPDFObjectHandle::isDictionary() const', 'QPDFObjectHandle::isNameAndEquals(std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::getArrayItem(int) const', 'std::__1::basic_string , std::__1::allocator >::operator=[abi:ne180100](char const*)', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::isArray() const', 'QPDF::interpretCF(std::__1::shared_ptr , QPDFObjectHandle)', 'QPDFObjectHandle::isName() const', 'QPDFObjectHandle::getArrayNItems() const', 'QPDFObjectHandle::isDictionaryOfType(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::~QPDFObjectHandle()']

88 164602 QPDF::decryptStream(std::__1::shared_ptr ,std::__1::shared_ptr ,QPDF&,Pipeline*&,QPDFObjGen,QPDFObjectHandle&,bool,std::__1::unique_ptr >&) call site: 00000 /src/qpdf/libqpdf/QPDF_encryption.cc:1068
60 60 1 :

['do_sarray_io']

60 62 access_virt_sarray call site: 00000 /src/libjpeg-turbo/src/jmemmgr.c:941
34 28594 16 :

['std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&)', 'QPDFObjectHandle::getIntValue() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'QPDFObjectHandle::replaceKey(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle const&)', 'QPDFObjectHandle::newInteger(long long)', 'QPDFObjGen::unparse(char) const', 'QPDFObjectHandle::StreamDataProvider::supportsRetry()', 'std::__1::to_string(long long)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'Pl_Count::~Pl_Count()', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Pl_Count::getCount() const', 'Pl_Count::Pl_Count(char const*, Pipeline*)']

58 29223 qpdf::Stream::pipeStreamData(Pipeline*,bool*,int,qpdf_stream_decode_level_e,bool,bool) call site: 00000 /src/qpdf/libqpdf/QPDF_Stream.cc:531
29 29 1 :

['Pl_RunLength::encode(unsigned char const*, unsigned long)']

29 29 Pl_RunLength::write(unsignedcharconst*,unsignedlong) call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:51
28 28 1 :

['do_barray_io']

28 30 access_virt_barray call site: 00000 /src/libjpeg-turbo/src/jmemmgr.c:1025
21 21 1 :

['crc32']

579 630 deflate call site: 00000 /src/zlib/deflate.c:1160
21 21 1 :

['crc32']

21 21 read_buf call site: 00000 /src/zlib/deflate.c:227
20 20 1 :

['Pl_RunLength::flush_encode()']

20 24 Pl_RunLength::finish() call site: 00000 /src/qpdf/libqpdf/Pl_RunLength.cc:166

Runtime coverage analysis

Covered functions
1209
Functions that are reachable but not covered
275
Reachable functions
1765
Percentage of reachable functions covered
84.42%
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 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 43
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 63
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.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 1756 38.6%
gold [1:9] 159 3.50%
yellow [10:29] 85 1.87%
greenyellow [30:49] 48 1.05%
lawngreen 50+ 2494 54.9%
All colors 4542 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
9657 9657 1 :

['QPDFWriter::writeLinearized()']

9659 9701 QPDFWriter::write() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2265
8194 8194 1 :

['QPDFWriter::writeObjectStream(QPDFObjectHandle)']

8202 8206 QPDFWriter::writeObject(QPDFObjectHandle,int) call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1799
7587 7587 1 :

['QPDFWriter::copyEncryptionParameters(QPDF&)']

22442 44727 QPDFWriter::doWriteSetup() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2159
7307 7307 1 :

['QPDFWriter::enqueueObjectsPCLm()']

7323 32321 QPDFWriter::writeStandard() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:3049
7150 7152 9 :

['std::__1::__wrap_iter ::operator++[abi:ne180100]()', 'QPDF::getAllObjects()', 'std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)', 'QTC::TC(char const*, char const*, int)', 'std::__1::vector >::~vector[abi:ne180100]()', 'std::__1::vector >::begin[abi:ne180100]()', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::vector >::end[abi:ne180100]()']

7194 71518 QPDFWriter::enqueueObjectsStandard() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:2951
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 21407 QPDFObjectHandle::as_array(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:445
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7139 QPDFObjectHandle::as_dictionary(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:462
7133 7133 1 :

['QPDFObjectHandle::assertType(char const*, bool) const']

7133 7137 QPDFObjectHandle::as_stream(qpdf::typed)const call site: 00000 /src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh:475
252 474 6 :

['inflate_table', 'adler32', 'fixedtables', 'inflate_fast', 'crc32', 'updatewindow']

252 474 inflate call site: 00000 /src/zlib/inflate.c:817
60 60 1 :

['do_sarray_io']

60 62 access_virt_sarray call site: 00000 /src/libjpeg-turbo/src/jmemmgr.c:941
36 50074 28 :

['std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator*[abi:ne180100]() const', 'QUtil::get_current_time()', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100]()', 'std::__1::to_string(long)', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](char const*)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', '__cxa_allocate_exception', 'qpdf::Dictionary::~Dictionary()', 'MD5::encodeString(char const*)', '__cxa_throw', 'qpdf::BaseDictionary::end()', 'std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> >::operator++[abi:ne180100]()', 'MD5::digest(unsigned char*)', 'MD5::~MD5()', 'QPDFObjectHandle::isString() const', 'QPDFObjectHandle::as_dictionary(qpdf::typed) const', 'qpdf::BaseDictionary::begin()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::operator+=[abi:ne180100](std::__1::basic_string , std::__1::allocator > const&)', 'QTC::TC(char const*, char const*, int)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', '__cxa_free_exception', 'std::__1::operator!=[abi:ne180100](std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&, std::__1::__map_iterator , std::__1::allocator >, QPDFObjectHandle>, std::__1::__tree_node , std::__1::allocator >, QPDFObjectHandle>, void*>*, long> > const&)', 'std::__1::basic_string , std::__1::allocator >::basic_string[abi:ne180100](char const*, unsigned long)', 'std::runtime_error::runtime_error(char const*)', 'MD5::MD5()', 'QPDFObjectHandle::getStringValue() const']

52 57242 QPDFWriter::generateID() call site: 00000 /src/qpdf/libqpdf/QPDFWriter.cc:1870
34 28594 16 :

['std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&)', 'QPDFObjectHandle::getIntValue() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'QPDFObjectHandle::replaceKey(std::__1::basic_string , std::__1::allocator > const&, QPDFObjectHandle const&)', 'QPDFObjectHandle::newInteger(long long)', 'QPDFObjGen::unparse(char) const', 'QPDFObjectHandle::StreamDataProvider::supportsRetry()', 'std::__1::to_string(long long)', 'QPDFObjectHandle::hasKey(std::__1::basic_string , std::__1::allocator > const&) const', 'Pl_Count::~Pl_Count()', 'QPDFObjectHandle::getKey(std::__1::basic_string , std::__1::allocator > const&) const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::shared_ptr ::operator->[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:ne180100] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Pl_Count::getCount() const', 'Pl_Count::Pl_Count(char const*, Pipeline*)']

58 29223 qpdf::Stream::pipeStreamData(Pipeline*,bool*,int,qpdf_stream_decode_level_e,bool,bool) call site: 00000 /src/qpdf/libqpdf/QPDF_Stream.cc:531

Runtime coverage analysis

Covered functions
1133
Functions that are reachable but not covered
418
Reachable functions
1787
Percentage of reachable functions covered
76.61%
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 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 52
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 65
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.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 4492 99.9%
gold [1:9] 3 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 4496 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
3331 1164 QPDFObjectHandle::newNull() call site: 01164 __dynamic_cast
796 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

Covered functions
6
Functions that are reachable but not covered
1750
Reachable functions
1765
Percentage of reachable functions covered
0.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 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 43
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 63
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.hh 1
/src/qpdf/libqpdf/BitWriter.cc 4
/src/qpdf/libqpdf/qpdf/bits_functions.hh 1

Fuzzer: future_qpdf_page_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 5197 99.9%
gold [1:9] 3 0.05%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.01%
All colors 5201 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
4037 1163 QPDFObjectHandle::newNull() call site: 01163 __dynamic_cast
795 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

Covered functions
6
Functions that are reachable but not covered
1972
Reachable functions
1987
Percentage of reachable functions covered
0.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_page_fuzzer.cc 8
/src/qpdf/libqpdf/Buffer.cc 9
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 6
/src/qpdf/include/qpdf/InputSource.hh 4
/src/qpdf/include/qpdf/QIntC.hh 54
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/qpdf/libqpdf/QPDF.cc 20
/src/qpdf/libqpdf/QPDF_objects.cc 46
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 11
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 4
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 29
/src/qpdf/include/qpdf/QPDF.hh 10
/src/qpdf/include/qpdf/QPDFObjGen.hh 11
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 30
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 24
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 62
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 24
/src/qpdf/libqpdf/QPDFObjectHandle.cc 112
/src/qpdf/libqpdf/QPDFXRefEntry.cc 3
/src/qpdf/libqpdf/QPDF_Dictionary.cc 14
/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 19
/src/qpdf/libqpdf/Pl_Buffer.cc 6
/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 41
/src/qpdf/libqpdf/MD5.cc 4
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 2
/src/qpdf/libqpdf/QPDFPageDocumentHelper.cc 4
/src/qpdf/include/qpdf/QPDFDocumentHelper.hh 1
/src/qpdf/libqpdf/QPDFPageLabelDocumentHelper.cc 3
/src/qpdf/include/qpdf/QPDFPageLabelDocumentHelper.hh 2
/src/qpdf/libqpdf/QPDFDocumentHelper.cc 1
/src/qpdf/libqpdf/QPDFOutlineDocumentHelper.cc 4
/src/qpdf/include/qpdf/QPDFOutlineDocumentHelper.hh 3
/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 8
/src/qpdf/include/qpdf/QPDFAcroFormDocumentHelper.hh 2
/src/qpdf/libqpdf/QPDFFormFieldObjectHelper.cc 30
/src/qpdf/include/qpdf/QPDFFormFieldObjectHelper.hh 2
/src/qpdf/libqpdf/QPDF_String.cc 6
/src/qpdf/include/qpdf/QPDFPageDocumentHelper.hh 1
/src/qpdf/include/qpdf/QPDFPageObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFPageObjectHelper.cc 9
/src/qpdf/include/qpdf/QPDFAnnotationObjectHelper.hh 2
/src/qpdf/libqpdf/QPDFAnnotationObjectHelper.cc 7
/src/qpdf/libqpdf/Pl_QPDFTokenizer.cc 3
/src/qpdf/libqpdf/QPDFMatrix.cc 11
/src/qpdf/libqpdf/QPDFNumberTreeObjectHelper.cc 7
/src/qpdf/libqpdf/NNTree.cc 28
/src/qpdf/libqpdf/qpdf/NNTree.hh 4
/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/libqpdf/QPDFNameTreeObjectHelper.cc 7
/src/qpdf/include/qpdf/QPDFNameTreeObjectHelper.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 4492 99.9%
gold [1:9] 3 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 0.02%
All colors 4496 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
3331 1164 QPDFObjectHandle::newNull() call site: 01164 __dynamic_cast
796 366 QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr &&) call site: 00366 __cxa_allocate_exception
365 0 EP call site: 00000 setenv

Runtime coverage analysis

Covered functions
6
Functions that are reachable but not covered
1748
Reachable functions
1763
Percentage of reachable functions covered
0.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_fuzzer.cc 9
/src/qpdf/libqpdf/Buffer.cc 8
/src/qpdf/libqpdf/Pl_Discard.cc 2
/src/qpdf/libqpdf/Pipeline.cc 6
/src/qpdf/libqpdf/Pl_DCT.cc 3
/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/libqpdf/BufferInputSource.cc 3
/src/qpdf/include/qpdf/InputSource.hh 3
/src/qpdf/include/qpdf/QIntC.hh 49
/usr/local/bin/../include/c++/v1/sstream 2
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/qpdf/libqpdf/QPDF.cc 25
/src/qpdf/libqpdf/QPDF_objects.cc 51
/src/qpdf/libqpdf/qpdf/QPDF_private.hh 29
/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 8
/src/qpdf/libqpdf/qpdf/Util.hh 5
/src/qpdf/include/qpdf/QPDFTokenizer.hh 9
/src/qpdf/libqpdf/QUtil.cc 21
/src/qpdf/include/qpdf/QPDF.hh 12
/src/qpdf/include/qpdf/QPDFObjGen.hh 12
/src/qpdf/include/qpdf/QPDFXRefEntry.hh 2
/src/qpdf/libqpdf/QPDFParser.cc 29
/src/qpdf/libqpdf/qpdf/QPDFParser.hh 3
/src/qpdf/libqpdf/qpdf/QPDFTokenizer_private.hh 4
/src/qpdf/include/qpdf/QPDFObjectHandle.hh 17
/src/qpdf/include/qpdf/ObjectHandle.hh 8
/src/qpdf/libqpdf/qpdf/QPDFObjectHandle_private.hh 64
/src/qpdf/libqpdf/qpdf/QPDFObject_private.hh 47
/src/qpdf/libqpdf/QPDF_Array.cc 16
/src/qpdf/libqpdf/QPDFObjectHandle.cc 76
/src/qpdf/libqpdf/QPDFXRefEntry.cc 4
/src/qpdf/libqpdf/QPDF_Dictionary.cc 13
/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/Pl_Buffer.cc 5
/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 43
/src/qpdf/libqpdf/MD5.cc 6
/src/qpdf/libqpdf/QPDFCryptoProvider.cc 6
/src/qpdf/include/qpdf/QPDFCryptoProvider.hh 1
/src/qpdf/libqpdf/qpdf/MD5.hh 1
/src/qpdf/libqpdf/RC4.cc 2
/src/qpdf/libqpdf/qpdf/RC4.hh 1
/src/qpdf/libqpdf/Pl_SHA2.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 4
/src/qpdf/libqpdf/QPDF_optimization.cc 9
/src/qpdf/libqpdf/QPDFWriter.cc 62
/src/qpdf/libqpdf/qpdf/Pipeline_private.hh 9
/src/qpdf/libqpdf/QPDF_String.cc 3
/src/qpdf/libqpdf/qpdf/ObjTable.hh 19
/src/qpdf/libqpdf/qpdf/QPDFWriter_private.hh 1
/src/qpdf/libqpdf/QPDF_linearization.cc 17
/src/qpdf/libqpdf/QPDFSystemError.cc 2
/src/qpdf/include/qpdf/QPDFSystemError.hh 1
/src/qpdf/libqpdf/Pl_StdioFile.cc 1
/src/qpdf/libqpdf/Pl_MD5.cc 4
/src/qpdf/include/qpdf/QPDFWriter.hh 1
/src/qpdf/libqpdf/Pl_RC4.cc 1
/src/qpdf/include/qpdf/QUtil.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'] 31 0 94 17 12 1401 0 8770 1426
QPDFPageObjectHelper::flattenRotation(QPDFAcroFormDocumentHelper*) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 36 0 1120 192 142 1710 0 10657 1415
encode_mcu_huff /src/libjpeg-turbo/src/jchuff.c 2 ['N/A', 'N/A'] 3 0 232 33 14 7 0 595 595
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'] 29 0 1481 307 286 1387 0 7904 540
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 1106 198 164 5 3 332 328
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'] 32 0 65 6 6 1417 0 7946 300
(anonymousnamespace)::InlineImageTracker::handleToken(QPDFTokenizer::Tokenconst&) /src/qpdf/libqpdf/QPDFPageObjectHelper.cc 2 ['N/A', 'N/A'] 31 0 380 68 52 1297 0 7517 265

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

Functions statically reachable by fuzzers
54.0%
1650 / 3040
Cyclomatic complexity statically reachable by fuzzers
71.0%
24213 / 34159

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/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=['Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'unsigned int QIntC::to_uint(unsigned long const&)', 'BitStream::getBitsSigned(unsigned long)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'FuzzHelper::run()', 'Pl_TIFFPredictor::processRow()']

/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=['Pl_TIFFPredictor::Pl_TIFFPredictor(char const*, Pipeline*, Pl_TIFFPredictor::action_e, unsigned int, unsigned int, unsigned int)', 'unsigned int QIntC::to_uint(unsigned long const&)', 'BitStream::getBitsSigned(unsigned long)', 'BitWriter::writeBits(unsigned long long, unsigned long)', 'FuzzHelper::run()', 'Pl_TIFFPredictor::processRow()']

/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/flate_fuzzer.cc

Dictionary

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


/src/qpdf/fuzz/dct_fuzzer.cc

Dictionary

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


/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::handleCode(unsigned int)', 'Pl_LZWDecoder::handleCode(unsigned int)', 'Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'Pl_LZWDecoder::addToTable(unsigned char)', '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/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/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/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


/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/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::write(unsigned char const*, unsigned long)', '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::handleCode(unsigned int)', 'Pl_LZWDecoder::handleCode(unsigned int)', 'Pl_LZWDecoder::Pl_LZWDecoder(char const*, Pipeline*, bool)', 'Pl_LZWDecoder::getFirstChar(unsigned int)', 'Pl_LZWDecoder::addToTable(unsigned char)', 'FuzzHelper::run()']

/src/qpdf/fuzz/dct_fuzzer.cc

Dictionary

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


/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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::write(unsigned char const*, unsigned long)', 'FuzzHelper::run()']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/src/qpdf/fuzz/qpdf_page_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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFWriter::prepareFileForWrite()', 'QPDFWriter::writeEncryptionDictionary()', 'ObjTable::large_element(unsigned long)', 'BitWriter::flush()', 'QPDFWriter::writeObject(QPDFObjectHandle, int)', 'QPDFWriter::writeStandard()', 'QPDFWriter::write()', 'QPDF::damagedPDF(long long, std::__1::basic_string, std::__1::allocator > const&)', 'QPDFWriter::activatePipelineStack(QPDFWriter::PipelinePopper&, std::__1::basic_string, std::__1::allocator >&)', 'QPDFWriter::enqueueObject(QPDFObjectHandle)']

/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=['QPDFWriter::write()', 'QPDFWriter::write()', 'QPDF::damagedPDF(long long, std::__1::basic_string, std::__1::allocator > const&)', 'QPDFWriter::generateID()', 'qpdf::BaseHandle::copy(bool) const', 'QPDFWriter::writeLinearized()', 'QPDF::reconstruct_xref(QPDFExc&, bool)', 'QPDFWriter::writeLinearized()', 'QPDFWriter::enqueueObject(QPDFObjectHandle)', 'qpdf::BaseHandle::unparse() const']

/src/qpdf/fuzz/qpdf_lin_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['QPDFWriter::write()', 'QPDF::damagedPDF(long long, std::__1::basic_string, std::__1::allocator > const&)', 'ObjTable::large_element(unsigned long)', 'QPDF::interpretCF(std::__1::shared_ptr, QPDFObjectHandle)', 'QPDFWriter::unparseObject(QPDFObjectHandle, int, int, unsigned long, bool)', 'qpdf::BaseHandle::copy(bool) const', 'QPDF::reconstruct_xref(QPDFExc&, bool)', 'QPDFWriter::writeLinearized()', 'QPDFWriter::enqueueObject(QPDFObjectHandle)', 'qpdf::BaseHandle::unparse() const']

/src/qpdf/fuzz/qpdf_crypt_insecure_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['QPDFWriter::prepareFileForWrite()', 'QPDFWriter::writeEncryptionDictionary()', 'ObjTable::large_element(unsigned long)', 'BitWriter::flush()', 'QPDFWriter::writeObject(QPDFObjectHandle, int)', 'QPDFWriter::writeStandard()', 'QPDFWriter::write()', 'QPDF::damagedPDF(long long, std::__1::basic_string, std::__1::allocator > const&)', 'QPDFWriter::activatePipelineStack(QPDFWriter::PipelinePopper&, std::__1::basic_string, std::__1::allocator >&)', 'QPDFWriter::enqueueObject(QPDFObjectHandle)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/src/qpdf/fuzz/qpdf_page_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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

/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=['QPDFObjectHandle::newNull()', 'QPDFObjectHandle::QPDFObjectHandle(std::__1::shared_ptr&&)']

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
output_pass_setup 45 10 22.22% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer']
start_pass 173 39 22.54% ['future_qpdf_crypt_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_crypt_insecure_fuzzer']
ycc_rgb_convert 36 8 22.22% ['future_qpdf_crypt_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jpeg_resync_to_restart 34 6 17.64% ['future_qpdf_crypt_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_crypt_insecure_fuzzer']
jpeg_core_output_dimensions 130 32 24.61% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer']
use_merged_upsample 38 6 15.78% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer']
jinit_d_post_controller 39 20 51.28% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer']
j12init_d_post_controller 40 20 50.0% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_dct_fuzzer', 'dct_fuzzer']
access_virt_sarray 59 31 52.54% ['future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_crypt_insecure_fuzzer']
Pl_Flate::checkError(charconst*,int) 35 17 48.57% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_flate_fuzzer', 'flate_fuzzer']
qpdf::BaseHandle::unparse()const 74 16 21.62% ['future_qpdf_crypt_fuzzer', 'future_qpdf_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_lin_fuzzer', 'qpdf_page_fuzzer', 'future_qpdf_page_fuzzer', 'qpdf_fuzzer']
QPDFWriter::interpretR3EncryptionParameters(std::__1::set ,std::__1::allocator >&,charconst*,charconst*,bool,bool,bool,bool,bool,bool,qpdf_r3_print_e,qpdf_r3_modify_e) 40 16 40.0% ['future_qpdf_crypt_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer']
QPDFWriter::writeObject(QPDFObjectHandle,int) 45 23 51.11% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'qpdf_lin_fuzzer', 'future_qpdf_fuzzer', 'qpdf_fuzzer']
qpdf::Stream::pipeStreamData(Pipeline*,bool*,int,qpdf_stream_decode_level_e,bool,bool) 118 60 50.84% ['qpdf_fuzzer', 'future_qpdf_crypt_fuzzer', 'future_qpdf_fuzzer', 'qpdf_outlines_fuzzer', 'qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_qpdf_outlines_fuzzer', 'qpdf_lin_fuzzer', 'future_json_fuzzer', 'qpdf_page_fuzzer', 'future_qpdf_page_fuzzer', 'json_fuzzer']
deflate 257 74 28.79% ['future_qpdf_crypt_fuzzer', 'qpdf_crypt_insecure_fuzzer', 'future_qpdf_crypt_insecure_fuzzer', 'future_qpdf_lin_fuzzer', 'future_flate_fuzzer', 'flate_fuzzer']

Files and Directories in report

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

Files in report

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

Directories in report

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

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_tiffpredictor_fuzzer fuzzerLogFile-0-5yK4uQyx7m.data fuzzerLogFile-0-5yK4uQyx7m.data.yaml future_tiffpredictor_fuzzer.covreport
tiffpredictor_fuzzer fuzzerLogFile-0-5bofSNERAn.data fuzzerLogFile-0-5bofSNERAn.data.yaml tiffpredictor_fuzzer.covreport
hex_fuzzer fuzzerLogFile-0-tdMP2GdjR0.data fuzzerLogFile-0-tdMP2GdjR0.data.yaml hex_fuzzer.covreport
future_flate_fuzzer fuzzerLogFile-0-g3Jp8AyYqC.data fuzzerLogFile-0-g3Jp8AyYqC.data.yaml future_flate_fuzzer.covreport
dct_fuzzer fuzzerLogFile-0-WHxR7Z8hwP.data fuzzerLogFile-0-WHxR7Z8hwP.data.yaml dct_fuzzer.covreport
future_lzw_fuzzer fuzzerLogFile-0-UjwZLRkScv.data fuzzerLogFile-0-UjwZLRkScv.data.yaml future_lzw_fuzzer.covreport
future_runlength_fuzzer fuzzerLogFile-0-0jnd8pTbQb.data fuzzerLogFile-0-0jnd8pTbQb.data.yaml future_runlength_fuzzer.covreport
runlength_fuzzer fuzzerLogFile-0-CCje2JVIrC.data fuzzerLogFile-0-CCje2JVIrC.data.yaml runlength_fuzzer.covreport
future_hex_fuzzer fuzzerLogFile-0-rggBZJhxKJ.data fuzzerLogFile-0-rggBZJhxKJ.data.yaml future_hex_fuzzer.covreport
ascii85_fuzzer fuzzerLogFile-0-pPW5kedYnp.data fuzzerLogFile-0-pPW5kedYnp.data.yaml ascii85_fuzzer.covreport
flate_fuzzer fuzzerLogFile-0-vs5gg7aorS.data fuzzerLogFile-0-vs5gg7aorS.data.yaml flate_fuzzer.covreport
future_ascii85_fuzzer fuzzerLogFile-0-ySkUz793Gk.data fuzzerLogFile-0-ySkUz793Gk.data.yaml future_ascii85_fuzzer.covreport
future_pngpredictor_fuzzer fuzzerLogFile-0-0Hxn7dV0uR.data fuzzerLogFile-0-0Hxn7dV0uR.data.yaml future_pngpredictor_fuzzer.covreport
lzw_fuzzer fuzzerLogFile-0-U8qsX1g6E7.data fuzzerLogFile-0-U8qsX1g6E7.data.yaml lzw_fuzzer.covreport
future_dct_fuzzer fuzzerLogFile-0-8RjMYfs4ZZ.data fuzzerLogFile-0-8RjMYfs4ZZ.data.yaml future_dct_fuzzer.covreport
future_qpdf_outlines_fuzzer fuzzerLogFile-0-iCJ9A1NhKE.data fuzzerLogFile-0-iCJ9A1NhKE.data.yaml future_qpdf_outlines_fuzzer.covreport
pngpredictor_fuzzer fuzzerLogFile-0-uctfWJ98Ww.data fuzzerLogFile-0-uctfWJ98Ww.data.yaml pngpredictor_fuzzer.covreport
qpdf_outlines_fuzzer fuzzerLogFile-0-tj83v1soW0.data fuzzerLogFile-0-tj83v1soW0.data.yaml qpdf_outlines_fuzzer.covreport
future_json_fuzzer fuzzerLogFile-0-XYttdvbs8k.data fuzzerLogFile-0-XYttdvbs8k.data.yaml future_json_fuzzer.covreport
json_fuzzer fuzzerLogFile-0-fLiJWzEOY9.data fuzzerLogFile-0-fLiJWzEOY9.data.yaml json_fuzzer.covreport
qpdf_page_fuzzer fuzzerLogFile-0-hbb9oUPnLy.data fuzzerLogFile-0-hbb9oUPnLy.data.yaml qpdf_page_fuzzer.covreport
qpdf_fuzzer fuzzerLogFile-0-Sksf5W6Fhc.data fuzzerLogFile-0-Sksf5W6Fhc.data.yaml qpdf_fuzzer.covreport
qpdf_crypt_fuzzer fuzzerLogFile-0-2ASiIHVBxO.data fuzzerLogFile-0-2ASiIHVBxO.data.yaml qpdf_crypt_fuzzer.covreport
qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-jUO4x1DGqn.data fuzzerLogFile-0-jUO4x1DGqn.data.yaml qpdf_crypt_insecure_fuzzer.covreport
future_qpdf_crypt_fuzzer fuzzerLogFile-0-SuVu4gkTBa.data fuzzerLogFile-0-SuVu4gkTBa.data.yaml future_qpdf_crypt_fuzzer.covreport
future_qpdf_lin_fuzzer fuzzerLogFile-0-zXyEIUsjk6.data fuzzerLogFile-0-zXyEIUsjk6.data.yaml future_qpdf_lin_fuzzer.covreport
future_qpdf_crypt_insecure_fuzzer fuzzerLogFile-0-MoIwnqUkHk.data fuzzerLogFile-0-MoIwnqUkHk.data.yaml future_qpdf_crypt_insecure_fuzzer.covreport
qpdf_lin_fuzzer fuzzerLogFile-0-rC1G09MLQf.data fuzzerLogFile-0-rC1G09MLQf.data.yaml qpdf_lin_fuzzer.covreport
future_qpdf_page_fuzzer fuzzerLogFile-0-E9dtelYorx.data fuzzerLogFile-0-E9dtelYorx.data.yaml future_qpdf_page_fuzzer.covreport
future_qpdf_fuzzer fuzzerLogFile-0-HicK83Suu3.data fuzzerLogFile-0-HicK83Suu3.data.yaml future_qpdf_fuzzer.covreport