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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
fse_read_ncount tests/fuzz/fse_read_ncount.c 24 1719 6 10 311 145 fse_read_ncount.c
huf_decompress tests/fuzz/huf_decompress.c 84 1657 13 18 2012 719 huf_decompress.c
huf_round_trip tests/fuzz/huf_round_trip.c 158 1586 12 27 7809 1931 huf_round_trip.c
simple_compress tests/fuzz/simple_compress.c 434 1309 20 40 12729 3075 simple_compress.c
simple_decompress tests/fuzz/simple_decompress.c 94 1647 19 35 1137 434 simple_decompress.c
decompress_dstSize_tooSmall tests/fuzz/decompress_dstSize_tooSmall.c 456 1285 20 64 13079 3236 decompress_dstSize_tooSmall.c
sequence_compression_api tests/fuzz/sequence_compression_api.c 445 1305 19 62 9396 2698 sequence_compression_api.c
stream_decompress tests/fuzz/stream_decompress.c 406 1337 19 36 6470 2347 stream_decompress.c
dictionary_stream_round_trip tests/fuzz/dictionary_stream_round_trip.c 622 1124 23 73 18144 4582 dictionary_stream_round_trip.c
dictionary_round_trip tests/fuzz/dictionary_round_trip.c 627 1117 24 73 18193 4592 dictionary_round_trip.c
simple_round_trip tests/fuzz/simple_round_trip.c 599 1146 24 66 16868 4218 simple_round_trip.c
stream_round_trip tests/fuzz/stream_round_trip.c 869 878 22 66 21817 5976 stream_round_trip.c
block_decompress tests/fuzz/block_decompress.c 58 1683 17 28 524 234 block_decompress.c
decompress_cross_format tests/fuzz/decompress_cross_format.c 397 1344 19 36 6472 2324 decompress_cross_format.c
generate_sequences tests/fuzz/generate_sequences.c 565 1179 24 66 16519 4067 generate_sequences.c
zstd_frame_info tests/fuzz/zstd_frame_info.c 56 1685 7 15 680 250 zstd_frame_info.c
block_round_trip tests/fuzz/block_round_trip.c 458 1286 20 59 12973 3221 block_round_trip.c
dictionary_decompress tests/fuzz/dictionary_decompress.c 769 972 23 72 19219 5383 dictionary_decompress.c
raw_dictionary_round_trip tests/fuzz/raw_dictionary_round_trip.c 590 1154 24 66 17414 4356 raw_dictionary_round_trip.c
seekable_roundtrip tests/fuzz/seekable_roundtrip.c 908 893 23 66 22023 6040 seekable_roundtrip.c
dictionary_loader tests/fuzz/dictionary_loader.c 577 1168 24 64 17121 4260 dictionary_loader.c

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: fse_read_ncount

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 16 21.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 1.33%
lawngreen 50+ 58 77.3%
All colors 75 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
4 27 LLVMFuzzerTestOneInput call site: 00027 ERR_getErrorName
4 45 MEM_readLE32 call site: 00045 ZSTD_countTrailingZeros32
3 38 FSE_readNCount call site: 00038 FSE_readNCount_body_bmi2
1 12 FUZZ_dataProducer_int32Range call site: 00012 FUZZ_dataProducer_uint32Range
1 20 FSE_writeNCount call site: 00020 FSE_writeNCount_generic
1 42 FSE_isError call site: 00042 MEM_readLE32
1 50 ZSTD_countTrailingZeros32 call site: 00050 ZSTD_highbit32
1 73 LLVMFuzzerTestOneInput call site: 00073 FUZZ_dataProducer_free

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/fse_read_ncount.c 1
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 1
lib/compress/fse_compress.c 3
lib/common/zstd_common.c 2
lib/common/error_private.h 3
lib/common/error_private.c 1
lib/common/entropy_common.c 5
lib/common/mem.h 4
lib/common/bits.h 3

Fuzzer: huf_decompress

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 92 31.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 204 68.9%
All colors 296 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
24 188 BIT_reloadDStream_internal call site: 00188 HUF_decompress1X2_usingDTable_internal_default
24 213 HUF_decompress1X_usingDTable call site: 00213 HUF_decompress1X1_usingDTable_internal_bmi2
14 95 BIT_readBitsFast call site: 00095 FSE_initDState
7 84 FSE_initDState call site: 00084 BIT_reloadDStream_internal
6 181 BIT_initDStream call site: 00181 BIT_reloadDStream_internal
3 75 BIT_initDStream call site: 00075 FSE_initDState
2 42 MEM_readLE32 call site: 00042 MEM_read32
2 71 MEM_readLE64 call site: 00071 MEM_read64
2 164 HUF_decompress1X_usingDTable call site: 00164 HUF_decompress1X2_usingDTable_internal_bmi2
2 171 MEM_readLE32 call site: 00171 MEM_read32
2 176 MEM_readLE64 call site: 00176 MEM_read64
1 7 FUZZ_dataProducer_int32Range call site: 00007 FUZZ_dataProducer_uint32Range

Runtime coverage analysis

Covered functions
99
Functions that are reachable but not covered
7
Reachable functions
84
Percentage of reachable functions covered
91.67%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/huf_decompress.c 1
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 1
lib/common/cpu.h 2
lib/decompress/huf_decompress.c 26
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/error_private.h 1
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/../common/error_private.h 1
lib/decompress/../common/mem.h 13
lib/common/zstd_common.c 1
lib/decompress/../common/bitstream.h 4
lib/decompress/../common/bits.h 3
lib/decompress/../common/compiler.h 1

Fuzzer: huf_round_trip

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 128 21.4%
gold [1:9] 0 0.0%
yellow [10:29] 7 1.17%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 463 77.4%
All colors 598 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
25 380 HUF_compress1X_usingCTable_internal_bmi2 call site: 00380 MEM_writeLEST
24 457 BIT_reloadDStream_internal call site: 00457 HUF_decompress1X2_usingDTable_internal_default
24 482 HUF_decompress1X_usingDTable call site: 00482 HUF_decompress1X1_usingDTable_internal_bmi2
14 295 BIT_readBitsFast call site: 00295 FSE_initDState
7 284 FSE_initDState call site: 00284 BIT_reloadDStream_internal
6 450 BIT_initDStream call site: 00450 BIT_reloadDStream_internal
5 176 MEM_writeLEST call site: 00176 MEM_writeLE32
2 40 LLVMFuzzerTestOneInput call site: 00040 ERR_getErrorName
2 184 MEM_writeLE64 call site: 00184 MEM_swap64
2 247 MEM_readLE32 call site: 00247 MEM_read32
2 272 MEM_readLE64 call site: 00272 MEM_read64
2 276 BIT_initDStream call site: 00276 FSE_initDState

Runtime coverage analysis

Covered functions
175
Functions that are reachable but not covered
13
Reachable functions
158
Percentage of reachable functions covered
91.77%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/huf_round_trip.c 2
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/common/cpu.h 2
lib/compress/hist.c 5
lib/compress/../common/mem.h 13
lib/common/zstd_common.c 2
lib/common/error_private.h 3
lib/common/error_private.c 1
lib/common/bits.h 3
lib/compress/huf_compress.c 35
lib/compress/fse_compress.c 11
lib/compress/../common/bits.h 2
lib/compress/../common/error_private.h 1
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 4
lib/decompress/huf_decompress.c 26
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/../common/error_private.h 1
lib/decompress/../common/mem.h 13
lib/decompress/../common/bitstream.h 4
lib/decompress/../common/bits.h 3
lib/decompress/../common/compiler.h 1

Fuzzer: simple_compress

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 708 44.7%
gold [1:9] 1 0.06%
yellow [10:29] 5 0.31%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 867 54.8%
All colors 1581 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
75 428 ZSTD_hash8 call site: 00428 ZSTD_row_update
51 646 MEM_readLE64 call site: 00646 HUF_readStats_body_default
39 519 ZSTD_isAligned call site: 00519 ZSTD_updateTree
38 876 ZSTD_safecopyLiterals call site: 00876 ZSTD_ldm_blockCompress
35 1529 ZSTD_freeCCtxContent call site: 01529 ZSTDMT_freeCCtx
34 340 ZSTD_window_update call site: 00340 ZSTD_overflowCorrectIfNeeded
31 1194 ZSTD_buildBlockEntropyStats call site: 01194 ZSTD_compressSubBlock_multi
26 592 ZSTD_insertBt1 call site: 00592 ZSTD_loadZstdDictionary
25 1244 HUF_compress1X_usingCTable_internal_bmi2 call site: 01244 MEM_writeLEST
22 293 ZSTD_resetCCtx_internal call site: 00293 ZSTD_resetCCtx_byCopyingCDict
21 774 ZSTD_compress_frameChunk call site: 00774 ZSTD_XXH64_update
21 1329 ZSTD_encodeSequences_bmi2 call site: 01329 ZSTD_compressSubBlock

Runtime coverage analysis

Covered functions
399
Functions that are reachable but not covered
138
Reachable functions
434
Percentage of reachable functions covered
68.2%
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
tests/fuzz/simple_compress.c 1
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 1
lib/compress/zstd_compress.c 117
lib/compress/../common/allocations.h 2
lib/compress/../common/zstd_internal.h 3
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 34
lib/compress/../common/error_private.h 1
lib/compress/zstd_compress_internal.h 41
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/zstd_ldm.c 20
lib/compress/../common/compiler.h 1
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 2
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/common/zstd_common.c 2
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1

Fuzzer: simple_decompress

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 822 39.4%
gold [1:9] 5 0.23%
yellow [10:29] 12 0.57%
greenyellow [30:49] 13 0.62%
lawngreen 50+ 1232 59.1%
All colors 2084 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 349 FSE_buildDTable call site: 00349 ZSTD_decodeSequence
54 438 FSE_buildDTable call site: 00438 ZSTD_decodeSequence
41 1909 ZSTD_execSequenceEndSplitLitBuffer call site: 01909 ZSTD_decompressSequencesSplitLitBuffer
33 1832 ZSTD_initFseState call site: 01832 BIT_reloadDStream_internal
31 1479 BIT_reloadDStream_internal call site: 01479 FSE_decompress_wksp_body_default
26 1661 HUF_decompress1X_usingDTable call site: 01661 HUF_decompress4X_usingDTable
25 1774 HUF_decompress4X1_DCtx_wksp call site: 01774 ZSTD_buildSeqTable
25 1804 ZSTD_buildSeqTable call site: 01804 ZSTD_decompressSequencesLong
24 1636 BIT_reloadDStream_internal call site: 01636 HUF_decompress1X2_usingDTable_internal_default
23 317 ZSTDv02_decompress call site: 00317 ZSTD_decompressDCtx
19 1076 HUFv07_fillDTableX4 call site: 01076 FSEv07_readNCount
18 1887 ZSTD_execSequenceEnd call site: 01887 ZSTD_execSequenceEndSplitLitBuffer

Runtime coverage analysis

Covered functions
462
Functions that are reachable but not covered
8
Reachable functions
94
Percentage of reachable functions covered
91.49%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/simple_decompress.c 1
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 1
lib/decompress/zstd_decompress.c 36
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_ddict.c 5
lib/decompress/../legacy/zstd_legacy.h 6
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/../common/error_private.h 1
lib/common/xxhash.h 16
lib/decompress/huf_decompress.c 31
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/error_private.h 2
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/zstd_decompress_block.c 30
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3
lib/common/zstd_common.c 2

Fuzzer: decompress_dstSize_tooSmall

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 2433 70.2%
gold [1:9] 6 0.17%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1024 29.5%
All colors 3463 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
561 2286 MEM_readLE16 call site: 02286 ZSTDv07_decompress_usingDict
282 1602 MEM_readLE32 call site: 01602 ZSTD_decompressLegacy
157 1974 BIT_reloadDStream call site: 01974 ZSTDv05_decompress_usingDict
147 430 ZSTD_hash7 call site: 00430 ZSTD_updateTree
108 2176 MEM_writeLE16 call site: 02176 ZSTDv05_decompress_continueDCtx
87 1885 BIT_reloadDStream call site: 01885 ZSTDv03_decompress
51 1372 ZSTD_blockSplitterEnabled call site: 01372 ZSTD_compressBlock_splitBlock
50 1550 MEM_readLE32 call site: 01550 ZSTD_findFrameCompressedSizeLegacy
39 3266 ZSTD_execSequenceEndSplitLitBuffer call site: 03266 ZSTD_decompressSequencesLong_default
38 882 ZSTD_safecopyLiterals call site: 00882 ZSTD_ldm_blockCompress
38 2136 MEM_readLE64 call site: 02136 FSEv05_initDState
35 3394 ZSTD_freeCCtxContent call site: 03394 ZSTDMT_freeCCtx

Runtime coverage analysis

Covered functions
398
Functions that are reachable but not covered
179
Reachable functions
456
Percentage of reachable functions covered
60.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
tests/fuzz/decompress_dstSize_tooSmall.c 1
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 1
lib/compress/zstd_compress.c 117
lib/compress/../common/allocations.h 2
lib/compress/../common/zstd_internal.h 3
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 34
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 31
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/compress/zstd_compress_internal.h 41
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/zstd_ldm.c 20
lib/compress/../common/compiler.h 1
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/common/zstd_common.c 3
lib/common/error_private.c 1
lib/decompress/zstd_ddict.c 5
lib/decompress/../legacy/zstd_legacy.h 6
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/../common/error_private.h 1
lib/decompress/huf_decompress.c 31
lib/decompress/zstd_decompress_block.c 30
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1

Fuzzer: sequence_compression_api

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 2309 67.7%
gold [1:9] 73 2.14%
yellow [10:29] 4 0.11%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1023 30.0%
All colors 3410 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
581 2218 MEM_readLE16 call site: 02218 ZSTDv07_decompress_usingDict
282 1534 MEM_readLE32 call site: 01534 ZSTD_decompressLegacy
157 1906 BIT_reloadDStream call site: 01906 ZSTDv05_decompress_usingDict
135 407 ZSTD_fillHashTableForCDict call site: 00407 ZSTD_updateTree
108 2108 MEM_writeLE16 call site: 02108 ZSTDv05_decompress_continueDCtx
87 1817 BIT_reloadDStream call site: 01817 ZSTDv03_decompress
82 992 ZSTD_freeCCtx call site: 00992 ZSTDMT_initCStream_internal
74 888 ZSTD_CCtx_init_compressStream2 call site: 00888 ZSTDMT_createCCtx_advanced
48 1484 ZSTD_isLegacy call site: 01484 ZSTD_findFrameCompressedSizeLegacy
38 2068 MEM_readLE64 call site: 02068 FSEv05_initDState
33 311 ZSTD_window_update call site: 00311 ZSTD_ldm_fillHashTable
32 1241 MEM_writeLE24 call site: 01241 ZSTD_convertBlockSequences

Runtime coverage analysis

Covered functions
426
Functions that are reachable but not covered
161
Reachable functions
445
Percentage of reachable functions covered
63.82%
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
tests/fuzz/sequence_compression_api.c 8
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 100
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 1
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 36
lib/decompress/../common/allocations.h 3
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/compress/zstd_compress_internal.h 37
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 8
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 5
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 10
lib/decompress/zstd_ddict.c 8
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/common/zstd_common.c 3
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 30
lib/common/pool.c 6
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_compress_literals.c 5
lib/compress/hist.c 3
lib/compress/zstd_compress_sequences.c 11
lib/compress/../common/fse.h 5
lib/compress/../common/bitstream.h 5
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: stream_decompress

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 829 35.4%
gold [1:9] 11 0.47%
yellow [10:29] 19 0.81%
greenyellow [30:49] 10 0.42%
lawngreen 50+ 1468 62.8%
All colors 2337 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
56 1433 FSE_buildDTable call site: 01433 ZSTD_decodeSequence
54 1522 FSE_buildDTable call site: 01522 ZSTD_decodeSequence
32 2058 ZSTD_initFseState call site: 02058 BIT_reloadDStream_internal
31 1737 BIT_reloadDStream_internal call site: 01737 FSE_decompress_wksp_body_default
31 2272 ZSTD_decompressContinueStream call site: 02272 ZSTD_decompressBlock_internal
26 946 ZSTD_getFrameHeader_advanced call site: 00946 ZSTD_DCtx_selectFrameDDict
26 1887 HUF_decompress1X_usingDTable call site: 01887 HUF_decompress4X_usingDTable
25 1087 ZSTDv07_decompressBegin_usingDict call site: 01087 ZSTDv07_decompress_insertDictionary
25 2000 HUF_decompress4X1_DCtx_wksp call site: 02000 ZSTD_buildSeqTable
24 1862 BIT_reloadDStream_internal call site: 01862 HUF_decompress1X2_usingDTable_internal_default
23 1401 ZSTDv02_decompress call site: 01401 ZSTD_decompressDCtx
21 2155 ZSTD_decompressSequencesLong_bmi2 call site: 02155 ZSTD_decompressSequencesSplitLitBuffer

Runtime coverage analysis

Covered functions
529
Functions that are reachable but not covered
35
Reachable functions
406
Percentage of reachable functions covered
91.38%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/stream_decompress.c 3
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 1
lib/decompress/zstd_decompress.c 50
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 4
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_ddict.c 5
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
lib/decompress/../common/error_private.h 1
lib/decompress/../legacy/zstd_legacy.h 8
lib/legacy/zstd_v04.c 67
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v05.c 72
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 95
lib/common/xxhash.h 16
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/decompress/zstd_decompress_block.c 30
lib/decompress/huf_decompress.c 31
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: dictionary_stream_round_trip

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 1919 44.4%
gold [1:9] 2 0.04%
yellow [10:29] 6 0.13%
greenyellow [30:49] 10 0.23%
lawngreen 50+ 2376 55.0%
All colors 4313 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
561 3224 MEM_readLE16 call site: 03224 ZSTDv07_decompress_usingDict
282 2540 MEM_readLE32 call site: 02540 ZSTD_decompressLegacy
157 2912 BIT_reloadDStream call site: 02912 ZSTDv05_decompress_usingDict
108 3114 MEM_writeLE16 call site: 03114 ZSTDv05_decompress_continueDCtx
87 2823 BIT_reloadDStream call site: 02823 ZSTDv03_decompress
60 4184 ZSTD_decompressSequencesLong_bmi2 call site: 04184 ZSTD_decompressSequencesSplitLitBuffer
48 2490 ZSTD_isLegacy call site: 02490 ZSTD_findFrameCompressedSizeLegacy
38 3074 MEM_readLE64 call site: 03074 FSEv05_initDState
32 4118 ZSTD_decompressSequencesLong_bmi2 call site: 04118 ZSTD_execSequenceEnd
29 953 ZSTD_compress_frameChunk call site: 00953 ZSTD_splitBlock
26 4091 BIT_readBitsFast call site: 04091 BIT_reloadDStream_internal
25 1401 HUF_compress1X_usingCTable_internal_bmi2 call site: 01401 MEM_writeLEST

Runtime coverage analysis

Covered functions
800
Functions that are reachable but not covered
62
Reachable functions
622
Percentage of reachable functions covered
90.03%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/dictionary_stream_round_trip.c 4
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 151
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 33
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 7
lib/dictBuilder/fastcover.c 9
lib/dictBuilder/cover.c 3
lib/dictBuilder/../compress/zstd_compress_internal.h 4
lib/dictBuilder/../common/mem.h 7
lib/dictBuilder/../common/error_private.h 1
lib/dictBuilder/zdict.c 8
lib/common/xxhash.h 16
lib/dictBuilder/../common/bits.h 2
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/threading.c 4
lib/common/../common/allocations.h 2
lib/common/zstd_common.c 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/decompress/zstd_ddict.c 8
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: dictionary_round_trip

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 1956 45.2%
gold [1:9] 3 0.06%
yellow [10:29] 3 0.06%
greenyellow [30:49] 3 0.06%
lawngreen 50+ 2360 54.5%
All colors 4325 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
561 3236 MEM_readLE16 call site: 03236 ZSTDv07_decompress_usingDict
282 2552 MEM_readLE32 call site: 02552 ZSTD_decompressLegacy
157 2924 BIT_reloadDStream call site: 02924 ZSTDv05_decompress_usingDict
108 3126 MEM_writeLE16 call site: 03126 ZSTDv05_decompress_continueDCtx
87 2835 BIT_reloadDStream call site: 02835 ZSTDv03_decompress
48 2502 ZSTD_isLegacy call site: 02502 ZSTD_findFrameCompressedSizeLegacy
38 3086 MEM_readLE64 call site: 03086 FSEv05_initDState
26 2068 ZSTDMT_initCStream_internal call site: 02068 ZSTDMT_resize
26 4103 BIT_readBitsFast call site: 04103 BIT_reloadDStream_internal
25 1402 HUF_compress1X_usingCTable_internal_bmi2 call site: 01402 MEM_writeLEST
25 4170 ZSTD_assertValidSequence call site: 04170 ZSTD_execSequenceEndSplitLitBuffer
24 3909 BIT_reloadDStream_internal call site: 03909 HUF_decompress1X2_usingDTable_internal_default

Runtime coverage analysis

Covered functions
817
Functions that are reachable but not covered
66
Reachable functions
627
Percentage of reachable functions covered
89.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/dictionary_round_trip.c 2
tests/fuzz/fuzz_data_producer.c 8
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 155
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 33
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 7
lib/dictBuilder/fastcover.c 9
lib/dictBuilder/cover.c 3
lib/dictBuilder/../compress/zstd_compress_internal.h 4
lib/dictBuilder/../common/mem.h 7
lib/dictBuilder/../common/error_private.h 1
lib/dictBuilder/zdict.c 8
lib/common/xxhash.h 16
lib/dictBuilder/../common/bits.h 2
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/threading.c 4
lib/common/../common/allocations.h 2
lib/common/zstd_common.c 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/decompress/zstd_ddict.c 8
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: simple_round_trip

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 2126 51.1%
gold [1:9] 4 0.09%
yellow [10:29] 2 0.04%
greenyellow [30:49] 3 0.07%
lawngreen 50+ 2018 48.5%
All colors 4153 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
560 2987 MEM_readLE16 call site: 02987 ZSTDv07_decompress_usingDict
282 2303 MEM_readLE32 call site: 02303 ZSTD_decompressLegacy
157 2675 BIT_reloadDStream call site: 02675 ZSTDv05_decompress_usingDict
108 2877 MEM_writeLE16 call site: 02877 ZSTDv05_decompress_continueDCtx
87 2586 BIT_reloadDStream call site: 02586 ZSTDv03_decompress
50 2251 MEM_readLE32 call site: 02251 ZSTD_findFrameCompressedSizeLegacy
49 3963 ZSTD_assertValidSequence call site: 03963 ZSTD_decompressSequencesLong_default
38 2837 MEM_readLE64 call site: 02837 FSEv05_initDState
27 3897 BIT_readBitsFast call site: 03897 BIT_reloadDStream_internal
26 935 ZSTDMT_initCStream_internal call site: 00935 ZSTDMT_resize
25 1773 HUF_compress1X_usingCTable_internal_bmi2 call site: 01773 MEM_writeLEST
24 3703 BIT_reloadDStream_internal call site: 03703 HUF_decompress1X2_usingDTable_internal_default

Runtime coverage analysis

Covered functions
693
Functions that are reachable but not covered
106
Reachable functions
599
Percentage of reachable functions covered
82.3%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/simple_round_trip.c 3
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 149
tests/fuzz/fuzz_data_producer.c 8
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 37
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 6
lib/compress/../common/mem.h 19
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/bits.h 7
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_ddict.c 5
lib/decompress/../legacy/zstd_legacy.h 6
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/huf_decompress.c 31
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: stream_round_trip

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 2283 52.1%
gold [1:9] 1 0.02%
yellow [10:29] 5 0.11%
greenyellow [30:49] 9 0.20%
lawngreen 50+ 2081 47.5%
All colors 4379 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
534 2503 MEM_readLE16 call site: 02503 ZBUFFv07_decompressContinue
243 3325 ZSTD_decompressMultiFrame call site: 03325 ZSTD_decompressLegacy
121 2226 ZSTD_decompressStream call site: 02226 ZSTD_decompressLegacyStream
107 2394 MEM_readLE64 call site: 02394 ZSTDv05_decompressSequences
98 3658 BIT_reloadDStream call site: 03658 ZSTDv07_decompress_usingDict
92 3130 MEM_writeLE16 call site: 03130 ZSTD_decompressLegacyStream
88 4135 ZSTD_assertValidSequence call site: 04135 ZSTD_decompressSequencesSplitLitBuffer
87 3569 BIT_reloadDStream call site: 03569 ZSTDv03_decompress
73 3229 ZSTD_findFrameSizeInfo call site: 03229 ZSTD_findFrameSizeInfoLegacy
42 3086 ZSTD_getDDict call site: 03086 ZSTD_initLegacyStream
40 2349 MEM_readLE32 call site: 02349 ZSTDv05_decompressContinue
33 4069 BIT_readBitsFast call site: 04069 ZSTD_execSequenceEnd

Runtime coverage analysis

Covered functions
713
Functions that are reachable but not covered
353
Reachable functions
869
Percentage of reachable functions covered
59.38%
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
tests/fuzz/stream_round_trip.c 5
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 142
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 50
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 4
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 6
lib/compress/../common/mem.h 19
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/bits.h 7
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/../common/error_private.h 1
lib/decompress/../legacy/zstd_legacy.h 8
lib/legacy/zstd_v04.c 67
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v05.c 72
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 95
lib/decompress/../common/mem.h 16
lib/decompress/zstd_ddict.c 5
lib/legacy/zstd_v01.c 57
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/decompress/zstd_decompress_block.c 32
lib/decompress/huf_decompress.c 31
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: block_decompress

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 293 48.9%
gold [1:9] 3 0.50%
yellow [10:29] 1 0.16%
greenyellow [30:49] 1 0.16%
lawngreen 50+ 300 50.1%
All colors 598 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
51 83 BIT_lookBitsFast call site: 00083 HUF_decompress4X_usingDTable
40 473 ZSTD_execSequenceEndSplitLitBuffer call site: 00473 ZSTD_decompressSequencesLong_default
29 400 BIT_readBitsFast call site: 00400 BIT_reloadDStream_internal
19 253 BIT_readBitsFast call site: 00253 FSE_decompress_wksp_body_default
18 451 ZSTD_execSequenceEnd call site: 00451 ZSTD_execSequenceEndSplitLitBuffer
13 380 ZSTD_decompressBlock_internal call site: 00380 ZSTD_decompressSequencesLong
13 583 ZSTD_freeDCtx call site: 00583 ZSTD_freeLegacyStreamContext
12 530 ZSTD_decompressSequencesSplitLitBuffer_bmi2 call site: 00530 ZSTD_execSequenceEnd
8 7 FUZZ_malloc_rand call site: 00007 FUZZ_dataProducer_int32Range
8 521 ZSTD_decompressSequencesSplitLitBuffer_bmi2 call site: 00521 ZSTD_execSequenceEndSplitLitBuffer
8 543 ZSTD_decompressSequencesSplitLitBuffer_bmi2 call site: 00543 ZSTD_decompressSequencesSplitLitBuffer_default
8 559 ZSTD_decompressSequences_bmi2 call site: 00559 ZSTD_execSequenceEnd

Runtime coverage analysis

Covered functions
136
Functions that are reachable but not covered
19
Reachable functions
58
Percentage of reachable functions covered
67.24%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/block_decompress.c 1
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 2
lib/decompress/zstd_decompress.c 9
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_decompress_block.c 31
lib/decompress/../common/mem.h 14
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/huf_decompress.c 31
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/bits.h 3
lib/decompress/../common/error_private.h 1
lib/decompress/../common/compiler.h 3
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/error_private.h 1
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/zstd_ddict.c 1
lib/decompress/../legacy/zstd_legacy.h 1
lib/legacy/zstd_v04.c 3
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

Fuzzer: decompress_cross_format

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 1829 76.6%
gold [1:9] 3 0.12%
yellow [10:29] 5 0.20%
greenyellow [30:49] 1 0.04%
lawngreen 50+ 547 22.9%
All colors 2385 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
336 858 MEM_readLE16 call site: 00858 ZSTDv07_decompress_usingDict
243 213 ZSTD_decompressMultiFrame call site: 00213 ZSTD_decompressLegacy
214 1195 ZSTD_XXH64_reset call site: 01195 ZSTDv07_decompressBlock_internal
157 546 BIT_reloadDStream call site: 00546 ZSTDv05_decompress_usingDict
148 708 MEM_readLE64 call site: 00708 ZSTDv05_decompress_continueDCtx
115 2117 ZSTD_decompressStream call site: 02117 ZSTD_decompressLegacyStream
87 457 BIT_reloadDStream call site: 00457 ZSTDv03_decompress
49 20 MEM_readLE32 call site: 00020 ZSTD_findFrameSizeInfoLegacy
41 71 MEM_readLE32 call site: 00071 ZSTDv07_findFrameSizeInfoLegacy
41 2235 ZSTD_decompressStream call site: 02235 ZSTD_decompressLegacyStream
40 1956 ZSTD_execSequenceEndSplitLitBuffer call site: 01956 ZSTD_decompressSequencesLong_default
29 1883 BIT_readBitsFast call site: 01883 BIT_reloadDStream_internal

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/decompress_cross_format.c 1
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 1
lib/decompress/zstd_decompress.c 51
lib/decompress/../legacy/zstd_legacy.h 8
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 67
lib/legacy/zstd_v05.c 72
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 95
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 30
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 4
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_ddict.c 5
lib/common/error_private.c 1
lib/common/xxhash.h 16
lib/decompress/huf_decompress.c 31
lib/common/entropy_common.c 8
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: generate_sequences

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 2549 61.6%
gold [1:9] 0 0.0%
yellow [10:29] 3 0.07%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1583 38.2%
All colors 4136 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
561 2991 MEM_readLE16 call site: 02991 ZSTDv07_decompress_usingDict
282 2307 MEM_readLE32 call site: 02307 ZSTD_decompressLegacy
157 2679 BIT_reloadDStream call site: 02679 ZSTDv05_decompress_usingDict
108 2881 MEM_writeLE16 call site: 02881 ZSTDv05_decompress_continueDCtx
88 3967 ZSTD_assertValidSequence call site: 03967 ZSTD_decompressSequencesSplitLitBuffer
87 2590 BIT_reloadDStream call site: 02590 ZSTDv03_decompress
78 922 ZSTD_freeCCtx call site: 00922 ZSTDMT_initCStream_internal
75 817 ZSTD_CCtx_init_compressStream2 call site: 00817 ZSTDMT_createCCtx_advanced
64 1151 ZSTD_compressStream2 call site: 01151 ZSTDMT_compressStream_generic
54 2066 ZSTD_compressEnd_public call site: 02066 ZSTD_compressContinue_public
50 2255 MEM_readLE32 call site: 02255 ZSTD_findFrameCompressedSizeLegacy
39 596 ZSTD_isAligned call site: 00596 ZSTD_updateTree

Runtime coverage analysis

Covered functions
575
Functions that are reachable but not covered
180
Reachable functions
565
Percentage of reachable functions covered
68.14%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/generate_sequences.c 2
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 1
lib/compress/zstd_compress.c 151
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
tests/fuzz/zstd_helpers.c 6
lib/compress/../common/mem.h 19
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/bits.h 7
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_decompress.c 31
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_ddict.c 5
lib/decompress/../legacy/zstd_legacy.h 6
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/../common/error_private.h 1
lib/decompress/huf_decompress.c 31
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: zstd_frame_info

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 52 24.8%
gold [1:9] 3 1.43%
yellow [10:29] 4 1.91%
greenyellow [30:49] 2 0.95%
lawngreen 50+ 148 70.8%
All colors 209 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
4 3 ZSTD_isLegacy call site: 00003 MEM_isLittleEndian
4 11 ZSTDv05_getFrameParams call site: 00011 MEM_isLittleEndian
4 17 ZSTDv06_getFrameParams call site: 00017 MEM_isLittleEndian
4 26 ZSTDv06_getFrameParams call site: 00026 MEM_isLittleEndian
4 34 MEM_readLE32 call site: 00034 MEM_readLE32
4 80 ZSTD_getFrameHeader_advanced call site: 00080 MEM_isLittleEndian
3 104 ZSTDv02_findFrameSizeInfoLegacy call site: 00104 MEM_isLittleEndian
3 115 ZSTDv03_findFrameSizeInfoLegacy call site: 00115 MEM_isLittleEndian
3 126 ZSTDv04_findFrameSizeInfoLegacy call site: 00126 MEM_isLittleEndian
2 23 ZSTDv06_getFrameParams call site: 00023 MEM_isLittleEndian
2 50 MEM_readLE64 call site: 00050 MEM_read64
2 59 MEM_writeLE32 call site: 00059 MEM_swap32

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/zstd_frame_info.c 1
lib/decompress/zstd_decompress.c 16
lib/decompress/../legacy/zstd_legacy.h 3
lib/decompress/../common/mem.h 12
lib/legacy/zstd_v05.c 5
lib/legacy/../common/mem.h 4
lib/legacy/zstd_v06.c 14
lib/legacy/zstd_v07.c 15
lib/legacy/zstd_v01.c 5
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 7
lib/legacy/zstd_v03.c 7
lib/legacy/zstd_v04.c 7
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 1

Fuzzer: block_round_trip

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 1090 52.5%
gold [1:9] 10 0.48%
yellow [10:29] 1 0.04%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 975 46.9%
All colors 2076 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
75 440 ZSTD_hash8 call site: 00440 ZSTD_row_update
66 1856 ZSTD_execSequenceEnd call site: 01856 ZSTD_decompressSequencesLong_default
63 796 ZSTD_compressContinue_internal call site: 00796 ZSTD_compress_frameChunk
60 1381 ZSTD_minGain call site: 01381 ZSTD_compressBlock_splitBlock
51 1579 BIT_reloadDStream_internal call site: 01579 HUF_decompress4X_usingDTable
39 531 ZSTD_isAligned call site: 00531 ZSTD_updateTree
38 900 ZSTD_safecopyLiterals call site: 00900 ZSTD_ldm_blockCompress
35 1471 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 01471 ZSTD_compressBlock_internal
35 2004 ZSTD_freeCCtxContent call site: 02004 ZSTDMT_freeCCtx
34 352 ZSTD_window_update call site: 00352 ZSTD_overflowCorrectIfNeeded
34 1215 ZSTD_buildSequencesStatistics call site: 01215 ZSTD_compressSubBlock_multi
29 1805 BIT_readBitsFast call site: 01805 BIT_reloadDStream_internal

Runtime coverage analysis

Covered functions
443
Functions that are reachable but not covered
181
Reachable functions
458
Percentage of reachable functions covered
60.48%
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
tests/fuzz/block_round_trip.c 2
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 117
lib/compress/../common/allocations.h 2
lib/compress/../common/zstd_internal.h 3
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 34
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 9
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/compress/zstd_compress_internal.h 41
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/zstd_ldm.c 20
lib/compress/../common/compiler.h 1
lib/common/xxhash.h 15
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/common/zstd_common.c 2
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_decompress_block.c 33
lib/decompress/../common/mem.h 14
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/huf_decompress.c 31
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/bits.h 3
lib/decompress/../common/error_private.h 1
lib/decompress/../common/compiler.h 3
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1
lib/decompress/zstd_ddict.c 1
lib/decompress/../legacy/zstd_legacy.h 1
lib/legacy/zstd_v04.c 3
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

Fuzzer: dictionary_decompress

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 1555 42.2%
gold [1:9] 9 0.24%
yellow [10:29] 18 0.48%
greenyellow [30:49] 2 0.05%
lawngreen 50+ 2096 56.9%
All colors 3680 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
134 412 ZSTD_fillHashTableForCDict call site: 00412 ZSTD_updateTree
60 1507 ZSTD_minGain call site: 01507 ZSTD_compressBlock_splitBlock
56 2172 FSE_buildDTable call site: 02172 ZSTD_decodeSequence
54 2261 FSE_buildDTable call site: 02261 ZSTD_decodeSequence
40 945 ZSTD_XXH64_update call site: 00945 ZSTD_compressBlock_targetCBlockSize
38 1026 ZSTD_safecopyLiterals call site: 01026 ZSTD_ldm_blockCompress
35 1597 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 01597 ZSTD_compressBlock_internal
35 1707 ZSTD_freeCCtxContent call site: 01707 ZSTDMT_freeCCtx
34 1341 ZSTD_buildSequencesStatistics call site: 01341 ZSTD_compressSubBlock_multi
32 3465 ZSTD_initFseState call site: 03465 BIT_reloadDStream_internal
31 1279 ZSTD_buildSequencesStatistics call site: 01279 ZSTD_NCountCost
28 1065 ZSTD_buildSeqStore call site: 01065 ZSTD_transferSequences_wBlockDelim

Runtime coverage analysis

Covered functions
750
Functions that are reachable but not covered
177
Reachable functions
769
Percentage of reachable functions covered
76.98%
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
tests/fuzz/dictionary_decompress.c 1
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 1
lib/decompress/zstd_decompress.c 33
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 1
lib/dictBuilder/fastcover.c 9
lib/dictBuilder/cover.c 3
lib/dictBuilder/../compress/zstd_compress_internal.h 4
lib/dictBuilder/../common/mem.h 7
lib/dictBuilder/../common/error_private.h 1
lib/dictBuilder/zdict.c 8
lib/common/xxhash.h 16
lib/dictBuilder/../common/bits.h 2
lib/compress/zstd_compress.c 126
lib/compress/zstd_compress_internal.h 41
lib/compress/../common/mem.h 19
lib/compress/../common/error_private.h 1
lib/compress/../common/bits.h 7
lib/compress/zstd_cwksp.h 35
lib/compress/../common/compiler.h 1
lib/compress/../common/allocations.h 2
lib/compress/zstd_ldm.c 20
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/../common/zstd_internal.h 3
lib/compress/../common/cpu.h 3
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1
lib/common/zstd_common.c 3
lib/decompress/zstd_ddict.c 9
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 30
lib/decompress/../common/bits.h 3
lib/common/error_private.c 1
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: raw_dictionary_round_trip

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 2025 49.4%
gold [1:9] 2 0.04%
yellow [10:29] 2 0.04%
greenyellow [30:49] 7 0.17%
lawngreen 50+ 2058 50.2%
All colors 4094 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
561 3004 MEM_readLE16 call site: 03004 ZSTDv07_decompress_usingDict
282 2320 MEM_readLE32 call site: 02320 ZSTD_decompressLegacy
157 2692 BIT_reloadDStream call site: 02692 ZSTDv05_decompress_usingDict
108 2894 MEM_writeLE16 call site: 02894 ZSTDv05_decompress_continueDCtx
87 2603 BIT_reloadDStream call site: 02603 ZSTDv03_decompress
60 3965 ZSTD_decompressSequencesLong_bmi2 call site: 03965 ZSTD_decompressSequencesSplitLitBuffer
48 2270 ZSTD_isLegacy call site: 02270 ZSTD_findFrameCompressedSizeLegacy
38 2854 MEM_readLE64 call site: 02854 FSEv05_initDState
29 1375 ZSTD_compress_frameChunk call site: 01375 ZSTD_splitBlock
26 954 ZSTDMT_initCStream_internal call site: 00954 ZSTDMT_resize
26 3871 BIT_readBitsFast call site: 03871 BIT_reloadDStream_internal
25 1792 HUF_compress1X_usingCTable_internal_bmi2 call site: 01792 MEM_writeLEST

Runtime coverage analysis

Covered functions
747
Functions that are reachable but not covered
83
Reachable functions
590
Percentage of reachable functions covered
85.93%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/raw_dictionary_round_trip.c 2
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 144
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 33
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
tests/fuzz/zstd_helpers.c 6
lib/compress/../common/mem.h 19
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/bits.h 7
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c 1
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_ddict.c 8
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: seekable_roundtrip

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 2919 67.3%
gold [1:9] 1 0.02%
yellow [10:29] 1 0.02%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1411 32.5%
All colors 4332 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
534 2479 MEM_readLE16 call site: 02479 ZBUFFv07_decompressContinue
254 3285 MEM_readLE24 call site: 03285 ZSTD_decompress_usingDDict
145 802 ZSTD_CCtx_init_compressStream2 call site: 00802 ZSTDMT_initCStream_internal
121 2202 ZSTD_decompressStream call site: 02202 ZSTD_decompressLegacyStream
107 2370 MEM_readLE64 call site: 02370 ZSTDv05_decompressSequences
105 3629 BIT_reloadDStream call site: 03629 ZSTDv07_decompress_usingDict
92 3101 MEM_writeLE16 call site: 03101 ZSTD_decompressLegacyStream
87 3540 BIT_reloadDStream call site: 03540 ZSTDv03_decompress
86 3197 ZSTD_decompressStream call site: 03197 ZSTD_findFrameCompressedSize_advanced
75 473 ZSTD_hash8 call site: 00473 ZSTD_row_update
69 1148 MEM_writeLE16 call site: 01148 ZSTDMT_compressionJob
64 1081 ZSTD_compressStream2 call site: 01081 ZSTDMT_compressStream_generic

Runtime coverage analysis

Covered functions
593
Functions that are reachable but not covered
486
Reachable functions
908
Percentage of reachable functions covered
46.48%
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
tests/fuzz/seekable_roundtrip.c 1
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 144
tests/fuzz/../../contrib/seekable_format/zstdseek_compress.c 12
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/compress/zstdmt_compress.c 53
lib/common/pool.c 9
lib/common/threading.c 4
lib/common/../common/allocations.h 2
tests/fuzz/../../contrib/seekable_format/zstdseek_decompress.c 8
lib/decompress/zstd_decompress.c 53
lib/decompress/../common/allocations.h 3
lib/decompress/../common/zstd_internal.h 4
lib/decompress/../common/cpu.h 3
lib/common/xxhash.h 16
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 16
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_ddict.c 5
lib/decompress/../common/error_private.h 1
lib/common/error_private.c 1
lib/decompress/../legacy/zstd_legacy.h 8
lib/legacy/zstd_v04.c 67
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v05.c 72
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 95
lib/decompress/../common/mem.h 16
lib/legacy/zstd_v01.c 57
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/decompress/zstd_decompress_block.c 32
lib/decompress/huf_decompress.c 31
lib/decompress/../common/bits.h 3
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

Fuzzer: dictionary_loader

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 2696 67.5%
gold [1:9] 8 0.20%
yellow [10:29] 2 0.05%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1286 32.2%
All colors 3993 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
561 2904 MEM_readLE16 call site: 02904 ZSTDv07_decompress_usingDict
282 2220 MEM_readLE32 call site: 02220 ZSTD_decompressLegacy
157 2592 BIT_reloadDStream call site: 02592 ZSTDv05_decompress_usingDict
118 678 ZSTD_CCtx_init_compressStream2 call site: 00678 ZSTDMT_createCCtx_advanced
116 1122 MEM_writeLE16 call site: 01122 ZSTDMT_compressionJob
108 2794 MEM_writeLE16 call site: 02794 ZSTDv05_decompress_continueDCtx
91 401 ZSTD_fillDoubleHashTableForCCtx call site: 00401 ZSTD_updateTree
87 2503 BIT_reloadDStream call site: 02503 ZSTDv03_decompress
84 826 ZSTD_freeCCtx call site: 00826 ZSTDMT_initCStream_internal
64 1055 ZSTD_compressStream2 call site: 01055 ZSTDMT_compressStream_generic
54 1971 ZSTD_compressEnd_public call site: 01971 ZSTD_compressContinue_public
51 1803 ZSTD_blockSplitterEnabled call site: 01803 ZSTD_compressBlock_splitBlock

Runtime coverage analysis

Covered functions
463
Functions that are reachable but not covered
240
Reachable functions
577
Percentage of reachable functions covered
58.41%
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
tests/fuzz/dictionary_loader.c 3
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 138
lib/compress/../common/allocations.h 3
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 35
lib/compress/../common/error_private.h 1
lib/common/zstd_common.c 3
lib/common/error_private.h 3
lib/common/error_private.c 1
lib/compress/zstd_compress_internal.h 46
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/../common/compiler.h 1
lib/compress/zstd_ldm.c 20
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstdmt_compress.c 52
lib/common/pool.c 9
lib/common/../common/allocations.h 2
lib/common/threading.c 4
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_decompress.c 33
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/decompress/zstd_ddict.c 8
lib/decompress/../common/mem.h 16
lib/decompress/huf_decompress.c 31
lib/decompress/../common/error_private.h 1
lib/decompress/zstd_decompress_block.c 32
lib/decompress/../common/bits.h 3
lib/decompress/../legacy/zstd_legacy.h 6
lib/legacy/zstd_v01.c 57
lib/legacy/../common/error_private.h 1
lib/legacy/zstd_v02.c 46
lib/legacy/zstd_v03.c 46
lib/legacy/zstd_v04.c 55
lib/legacy/zstd_v05.c 66
lib/legacy/../common/mem.h 14
lib/legacy/zstd_v06.c 77
lib/legacy/zstd_v07.c 87
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/compiler.h 3

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
ZSTD_compressBlock_btlazy2_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 4574
ZSTD_decompressSequencesLong /src/zstd/lib/decompress/zstd_decompress_block.c 7 ['N/A', 'N/A', 'size_t', 'N/A', 'size_t', 'int', 'int'] 6 0 60 8 3 36 0 760 708
ZDICT_trainFromBuffer_legacy /src/zstd/lib/dictBuilder/zdict.c 6 ['N/A', 'size_t', 'N/A', 'N/A', 'int', 'N/A'] 25 0 74 8 4 487 0 3859 696
ZSTD_compressBlock_lazy2_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_compressBlock_lazy2_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_compressBlock_lazy_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_compressBlock_lazy_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_compressBlock_greedy_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_compressBlock_greedy_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5341 703 665 108 0 4681 665
ZSTD_decompressSequencesSplitLitBuffer /src/zstd/lib/decompress/zstd_decompress_block.c 7 ['N/A', 'N/A', 'size_t', 'N/A', 'size_t', 'int', 'int'] 6 0 60 8 3 34 0 560 431

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

Functions statically reachable by fuzzers
67.0%
1161 / 1742
Cyclomatic complexity statically reachable by fuzzers
77.0%
17698 / 23088

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.

tests/fuzz/fse_read_ncount.c

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=['LLVMFuzzerTestOneInput', 'MEM_readLE32', 'FSE_readNCount', 'FUZZ_dataProducer_int32Range', 'FSE_writeNCount', 'FSE_isError', 'ZSTD_countTrailingZeros32']

tests/fuzz/huf_decompress.c

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=['BIT_reloadDStream_internal', 'HUF_decompress1X_usingDTable', 'BIT_readBitsFast', 'FSE_initDState', 'BIT_initDStream', 'MEM_readLE32', 'MEM_readLE64']

tests/fuzz/huf_round_trip.c

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=['HUF_compress1X_usingCTable_internal_bmi2', 'BIT_reloadDStream_internal', 'HUF_decompress1X_usingDTable', 'BIT_readBitsFast', 'FSE_initDState', 'BIT_initDStream', 'MEM_writeLEST', 'LLVMFuzzerTestOneInput', 'MEM_writeLE64', 'MEM_readLE32']

tests/fuzz/simple_compress.c

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=['ZSTD_hash8', 'MEM_readLE64', 'ZSTD_isAligned', 'ZSTD_safecopyLiterals', 'ZSTD_freeCCtxContent', 'ZSTD_window_update', 'ZSTD_buildBlockEntropyStats', 'ZSTD_insertBt1', 'HUF_compress1X_usingCTable_internal_bmi2', 'ZSTD_resetCCtx_internal']

tests/fuzz/simple_decompress.c

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=['FSE_buildDTable', 'ZSTD_execSequenceEndSplitLitBuffer', 'ZSTD_initFseState', 'BIT_reloadDStream_internal', 'HUF_decompress1X_usingDTable', 'HUF_decompress4X1_DCtx_wksp', 'ZSTD_buildSeqTable', 'ZSTDv02_decompress']

tests/fuzz/decompress_dstSize_tooSmall.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_hash7', 'MEM_writeLE16', 'ZSTD_blockSplitterEnabled', 'ZSTD_execSequenceEndSplitLitBuffer', 'ZSTD_safecopyLiterals']

tests/fuzz/sequence_compression_api.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_fillHashTableForCDict', 'MEM_writeLE16', 'ZSTD_freeCCtx', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_isLegacy', 'MEM_readLE64']

tests/fuzz/stream_decompress.c

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=['FSE_buildDTable', 'ZSTD_initFseState', 'BIT_reloadDStream_internal', 'ZSTD_decompressContinueStream', 'ZSTD_getFrameHeader_advanced', 'HUF_decompress1X_usingDTable', 'ZSTDv07_decompressBegin_usingDict', 'HUF_decompress4X1_DCtx_wksp']

tests/fuzz/dictionary_stream_round_trip.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_decompressSequencesLong_bmi2', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_compress_frameChunk']

tests/fuzz/dictionary_round_trip.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTDMT_initCStream_internal', 'BIT_readBitsFast', 'HUF_compress1X_usingCTable_internal_bmi2']

tests/fuzz/simple_round_trip.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_assertValidSequence', 'MEM_readLE64', 'BIT_readBitsFast', 'ZSTDMT_initCStream_internal']

tests/fuzz/stream_round_trip.c

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=['MEM_readLE16', 'ZSTD_decompressMultiFrame', 'ZSTD_decompressStream', 'MEM_readLE64', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_assertValidSequence', 'ZSTD_findFrameSizeInfo', 'ZSTD_getDDict']

tests/fuzz/block_decompress.c

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=['BIT_lookBitsFast', 'ZSTD_execSequenceEndSplitLitBuffer', 'BIT_readBitsFast', 'ZSTD_execSequenceEnd', 'ZSTD_decompressBlock_internal', 'ZSTD_freeDCtx', 'ZSTD_decompressSequencesSplitLitBuffer_bmi2', 'FUZZ_malloc_rand']

tests/fuzz/decompress_cross_format.c

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=['MEM_readLE16', 'ZSTD_decompressMultiFrame', 'ZSTD_XXH64_reset', 'BIT_reloadDStream', 'MEM_readLE64', 'ZSTD_decompressStream', 'MEM_readLE32']

tests/fuzz/generate_sequences.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_assertValidSequence', 'ZSTD_freeCCtx', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_compressStream2', 'ZSTD_compressEnd_public']

tests/fuzz/zstd_frame_info.c

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=['ZSTD_isLegacy', 'ZSTDv05_getFrameParams', 'ZSTDv06_getFrameParams', 'MEM_readLE32', 'ZSTD_getFrameHeader_advanced', 'ZSTDv02_findFrameSizeInfoLegacy', 'ZSTDv03_findFrameSizeInfoLegacy', 'ZSTDv04_findFrameSizeInfoLegacy']

tests/fuzz/block_round_trip.c

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=['ZSTD_hash8', 'ZSTD_execSequenceEnd', 'ZSTD_compressContinue_internal', 'ZSTD_minGain', 'BIT_reloadDStream_internal', 'ZSTD_isAligned', 'ZSTD_safecopyLiterals', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_freeCCtxContent', 'ZSTD_window_update']

tests/fuzz/dictionary_decompress.c

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=['ZSTD_fillHashTableForCDict', 'ZSTD_minGain', 'FSE_buildDTable', 'ZSTD_XXH64_update', 'ZSTD_safecopyLiterals', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_freeCCtxContent', 'ZSTD_buildSequencesStatistics', 'ZSTD_initFseState']

tests/fuzz/raw_dictionary_round_trip.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_decompressSequencesLong_bmi2', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_compress_frameChunk', 'ZSTDMT_initCStream_internal']

tests/fuzz/seekable_roundtrip.c

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=['MEM_readLE16', 'MEM_readLE24', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_decompressStream', 'MEM_readLE64', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_hash8']

tests/fuzz/dictionary_loader.c

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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_CCtx_init_compressStream2', 'MEM_writeLE16', 'ZSTD_fillDoubleHashTableForCCtx', 'ZSTD_freeCCtx', 'ZSTD_compressStream2']

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/zstd/lib/compress/hist.c ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/simple_decompress.c ['simple_decompress'] ['simple_decompress']
/src/zstd/lib/common/xxhash.h ['simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/common/entropy_common.c ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/common/error_private.c ['fse_read_ncount', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/tests/fuzz/../../contrib/seekable_format/zstdseek_compress.c ['seekable_roundtrip'] []
/src/zstd/tests/fuzz/decompress_dstSize_tooSmall.c ['decompress_dstSize_tooSmall'] ['decompress_dstSize_tooSmall']
/src/zstd/lib/legacy/zstd_v05.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'stream_decompress', 'zstd_frame_info', 'dictionary_decompress']
/src/zstd/lib/decompress/../common/cpu.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_decompress', 'huf_round_trip']
/src/zstd/tests/fuzz/raw_dictionary_round_trip.c ['raw_dictionary_round_trip'] ['raw_dictionary_round_trip']
/src/zstd/tests/fuzz/dictionary_stream_round_trip.c ['dictionary_stream_round_trip'] ['dictionary_stream_round_trip']
/src/zstd/lib/dictBuilder/../compress/zstd_compress_internal.h ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/dictionary_decompress.c ['dictionary_decompress'] ['dictionary_decompress']
/src/zstd/lib/legacy/zstd_v07.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/huf_decompress.c ['huf_decompress'] ['huf_decompress']
/src/zstd/tests/fuzz/../../programs/util.c [] []
/src/zstd/lib/compress/zstd_opt.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'raw_dictionary_round_trip', 'seekable_roundtrip']
/src/zstd/lib/compress/zstd_fast.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip']
/src/zstd/tests/fuzz/fuzz_data_producer.c ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/../../contrib/externalSequenceProducer/sequence_producer.c ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'raw_dictionary_round_trip'] []
/src/zstd/lib/common/bits.h ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip']
/src/zstd/lib/compress/../common/fse.h ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/legacy/zstd_v03.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'dictionary_decompress', 'raw_dictionary_round_trip', 'dictionary_loader']
/src/zstd/lib/dictBuilder/fastcover.c ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress']
/src/zstd/lib/compress/../common/bitstream.h ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/common/threading.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'raw_dictionary_round_trip']
/src/zstd/lib/compress/zstd_compress.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/dictBuilder/../common/mem.h ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['seekable_roundtrip']
/src/zstd/lib/legacy/zstd_v01.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'stream_decompress', 'zstd_frame_info', 'dictionary_decompress']
/src/zstd/lib/legacy/../common/error_private.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip']
/src/zstd/tests/fuzz/../../contrib/seekable_format/zstdseek_decompress.c ['seekable_roundtrip'] []
/src/zstd/lib/common/pool.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'raw_dictionary_round_trip']
/src/zstd/lib/decompress/../common/zstd_internal.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/compress/zstd_double_fast.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/dictBuilder/cover.c ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress']
/src/zstd/tests/fuzz/simple_compress.c ['simple_compress'] ['simple_compress']
/src/zstd/tests/fuzz/decompress_cross_format.c ['decompress_cross_format'] ['decompress_cross_format']
/src/zstd/lib/compress/zstd_lazy.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'raw_dictionary_round_trip', 'seekable_roundtrip']
/src/zstd/tests/fuzz/zstd_frame_info.c ['zstd_frame_info'] ['zstd_frame_info']
/src/zstd/tests/fuzz/zstd_helpers.c ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'dictionary_decompress', 'raw_dictionary_round_trip'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'dictionary_decompress', 'raw_dictionary_round_trip']
/src/zstd/lib/decompress/../common/mem.h ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['seekable_roundtrip']
/src/zstd/tests/fuzz/dictionary_loader.c ['dictionary_loader'] ['dictionary_loader']
/src/zstd/lib/compress/zstd_ldm.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/decompress/zstd_decompress_block.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/compress/zstd_compress_superblock.c ['simple_compress', 'decompress_dstSize_tooSmall', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'raw_dictionary_round_trip']
/src/zstd/lib/compress/../common/compiler.h ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/tests/fuzz/simple_round_trip.c ['simple_round_trip'] ['simple_round_trip']
/src/zstd/lib/decompress/zstd_decompress_internal.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/common/mem.h ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['seekable_roundtrip']
/src/zstd/tests/fuzz/dictionary_round_trip.c ['dictionary_round_trip'] ['dictionary_round_trip']
/src/zstd/lib/common/error_private.h ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip']
/src/zstd/lib/common/zstd_common.c ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'dictionary_decompress', 'raw_dictionary_round_trip', 'dictionary_loader']
/src/zstd/tests/fuzz/sequence_compression_api.c ['sequence_compression_api'] ['sequence_compression_api']
/src/zstd/lib/compress/huf_compress.c ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/huf_round_trip.c ['huf_round_trip'] ['huf_round_trip']
/src/zstd/tests/fuzz/stream_round_trip.c ['stream_round_trip'] ['stream_round_trip']
/src/zstd/tests/fuzz/fuzz_helpers.c ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['fse_read_ncount', 'huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/dictBuilder/../common/bits.h ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['huf_round_trip']
/src/zstd/lib/decompress/../common/allocations.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/compress/zstd_preSplit.c ['simple_compress', 'decompress_dstSize_tooSmall', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'dictionary_round_trip', 'simple_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/block_decompress.c ['block_decompress'] ['block_decompress']
/src/zstd/lib/decompress/../common/compiler.h ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/legacy/zstd_v04.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/decompress/zstd_ddict.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/decompress/../common/bitstream.h ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/common/fse_decompress.c ['huf_decompress', 'huf_round_trip', 'simple_compress', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/compress/fse_compress.c ['fse_read_ncount', 'huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['fse_read_ncount', 'huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/block_round_trip.c ['block_round_trip'] ['block_round_trip']
/src/zstd/lib/compress/../common/mem.h ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['seekable_roundtrip']
/src/zstd/lib/compress/zstd_compress_literals.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/compress/zstdmt_compress.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/decompress/zstd_decompress.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/decompress/../legacy/zstd_legacy.h ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] []
/src/zstd/lib/compress/zstd_compress_internal.h ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/compress/zstd_cwksp.h ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/dictBuilder/zdict.c ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress'] ['dictionary_stream_round_trip', 'dictionary_round_trip', 'dictionary_decompress']
/src/zstd/tests/fuzz/generate_sequences.c ['generate_sequences'] ['generate_sequences']
/src/zstd/tests/fuzz/seekable_roundtrip.c ['seekable_roundtrip'] ['seekable_roundtrip']
/src/zstd/lib/decompress/huf_decompress.c ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_decompress', 'huf_round_trip', 'simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/lib/compress/../common/bits.h ['huf_round_trip', 'simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['huf_round_trip']
/src/zstd/lib/legacy/zstd_v06.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'block_decompress', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'stream_decompress', 'zstd_frame_info', 'dictionary_decompress']
/src/zstd/lib/legacy/zstd_v02.c ['simple_decompress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'stream_decompress', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'decompress_cross_format', 'generate_sequences', 'zstd_frame_info', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_decompress', 'stream_decompress', 'zstd_frame_info', 'dictionary_decompress']
/src/zstd/tests/fuzz/stream_decompress.c ['stream_decompress'] ['stream_decompress']
/src/zstd/lib/compress/zstd_compress_sequences.c ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader'] ['simple_compress', 'decompress_dstSize_tooSmall', 'sequence_compression_api', 'dictionary_stream_round_trip', 'dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'generate_sequences', 'block_round_trip', 'dictionary_decompress', 'raw_dictionary_round_trip', 'seekable_roundtrip', 'dictionary_loader']
/src/zstd/tests/fuzz/fse_read_ncount.c ['fse_read_ncount'] ['fse_read_ncount']
/src/zstd/lib/dictBuilder/divsufsort.c [] []
/src/zstd/lib/common/cpu.h ['huf_decompress', 'huf_round_trip'] ['huf_decompress', 'huf_round_trip']

Directories in report

Directory
/src/zstd/lib/decompress/../common/
/src/zstd/lib/legacy/
/src/zstd/lib/dictBuilder/
/src/zstd/lib/compress/
/src/zstd/lib/legacy/../common/
/src/zstd/lib/decompress/
/src/zstd/lib/compress/../common/
/src/zstd/tests/fuzz/
/src/zstd/tests/fuzz/../../contrib/externalSequenceProducer/
/src/zstd/tests/fuzz/../../programs/
/src/zstd/lib/decompress/../legacy/
/src/zstd/lib/common/
/src/zstd/tests/fuzz/../../contrib/seekable_format/
/src/zstd/lib/dictBuilder/../common/
/src/zstd/lib/dictBuilder/../compress/

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
fse_read_ncount fuzzerLogFile-0-epKnWD08vH.data fuzzerLogFile-0-epKnWD08vH.data.yaml fse_read_ncount.covreport
huf_decompress fuzzerLogFile-0-QQitHgn9pP.data fuzzerLogFile-0-QQitHgn9pP.data.yaml huf_decompress.covreport
huf_round_trip fuzzerLogFile-0-ENDPPQL429.data fuzzerLogFile-0-ENDPPQL429.data.yaml huf_round_trip.covreport
simple_compress fuzzerLogFile-0-ytKBTQfRF4.data fuzzerLogFile-0-ytKBTQfRF4.data.yaml simple_compress.covreport
simple_decompress fuzzerLogFile-0-AAjvDJWiwq.data fuzzerLogFile-0-AAjvDJWiwq.data.yaml simple_decompress.covreport
decompress_dstSize_tooSmall fuzzerLogFile-0-atPQo2FycW.data fuzzerLogFile-0-atPQo2FycW.data.yaml decompress_dstSize_tooSmall.covreport
sequence_compression_api fuzzerLogFile-0-XHb3FIN0fi.data fuzzerLogFile-0-XHb3FIN0fi.data.yaml sequence_compression_api.covreport
stream_decompress fuzzerLogFile-0-v3VZmAWByW.data fuzzerLogFile-0-v3VZmAWByW.data.yaml stream_decompress.covreport
dictionary_stream_round_trip fuzzerLogFile-0-VYOtrhtynN.data fuzzerLogFile-0-VYOtrhtynN.data.yaml dictionary_stream_round_trip.covreport
dictionary_round_trip fuzzerLogFile-0-r0IwvJx4oo.data fuzzerLogFile-0-r0IwvJx4oo.data.yaml dictionary_round_trip.covreport
simple_round_trip fuzzerLogFile-0-R0j2Z8gWgJ.data fuzzerLogFile-0-R0j2Z8gWgJ.data.yaml simple_round_trip.covreport
stream_round_trip fuzzerLogFile-0-Wn6NSRmSQO.data fuzzerLogFile-0-Wn6NSRmSQO.data.yaml stream_round_trip.covreport
block_decompress fuzzerLogFile-0-cbvYNH1KMO.data fuzzerLogFile-0-cbvYNH1KMO.data.yaml block_decompress.covreport
decompress_cross_format fuzzerLogFile-0-7mtvDNftGQ.data fuzzerLogFile-0-7mtvDNftGQ.data.yaml decompress_cross_format.covreport
generate_sequences fuzzerLogFile-0-C8SDl30xSg.data fuzzerLogFile-0-C8SDl30xSg.data.yaml generate_sequences.covreport
zstd_frame_info fuzzerLogFile-0-fJ7c8FIHsR.data fuzzerLogFile-0-fJ7c8FIHsR.data.yaml zstd_frame_info.covreport
block_round_trip fuzzerLogFile-0-yfj5gBprER.data fuzzerLogFile-0-yfj5gBprER.data.yaml block_round_trip.covreport
dictionary_decompress fuzzerLogFile-0-tzyJ6HeXaU.data fuzzerLogFile-0-tzyJ6HeXaU.data.yaml dictionary_decompress.covreport
raw_dictionary_round_trip fuzzerLogFile-0-Y2C3Q8JZvJ.data fuzzerLogFile-0-Y2C3Q8JZvJ.data.yaml raw_dictionary_round_trip.covreport
seekable_roundtrip fuzzerLogFile-0-P7Ux9pWgN2.data fuzzerLogFile-0-P7Ux9pWgN2.data.yaml seekable_roundtrip.covreport
dictionary_loader fuzzerLogFile-0-0nsHxvMDe9.data fuzzerLogFile-0-0nsHxvMDe9.data.yaml dictionary_loader.covreport