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

Project overview: zstd

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
zstd_frame_info tests/fuzz/zstd_frame_info.c 54 3166 6 10 154 126 zstd_frame_info.c
block_decompress tests/fuzz/block_decompress.c 88 3135 19 27 234 210 block_decompress.c
simple_decompress tests/fuzz/simple_decompress.c 123 3103 24 31 374 332 simple_decompress.c
stream_decompress tests/fuzz/stream_decompress.c 468 2777 24 31 1819 1657 stream_decompress.c
decompress_cross_format tests/fuzz/decompress_cross_format.c 461 2782 24 31 1817 1657 decompress_cross_format.c
huf_round_trip tests/fuzz/huf_round_trip.c 258 3008 13 15 518 556 huf_round_trip.c
decompress_dstSize_tooSmall tests/fuzz/decompress_dstSize_tooSmall.c 602 2688 20 50 1488 1413 decompress_dstSize_tooSmall.c
generate_sequences tests/fuzz/generate_sequences.c 692 2602 24 39 1927 1745 generate_sequences.c
seekable_roundtrip tests/fuzz/seekable_roundtrip.c 1044 2263 23 55 3460 3151 seekable_roundtrip.c
dictionary_round_trip tests/fuzz/dictionary_round_trip.c 713 2581 22 47 1991 1782 dictionary_round_trip.c
raw_dictionary_round_trip tests/fuzz/raw_dictionary_round_trip.c 713 2581 22 47 1991 1782 raw_dictionary_round_trip.c
huf_decompress tests/fuzz/huf_decompress.c 133 3106 14 13 262 277 huf_decompress.c
fse_read_ncount tests/fuzz/fse_read_ncount.c 22 3197 8 8 49 62 fse_read_ncount.c
simple_compress tests/fuzz/simple_compress.c 567 2722 20 37 1339 1277 simple_compress.c
simple_round_trip tests/fuzz/simple_round_trip.c 713 2581 22 47 1991 1782 simple_round_trip.c
stream_round_trip tests/fuzz/stream_round_trip.c 948 2352 23 52 2919 2762 stream_round_trip.c
dictionary_loader tests/fuzz/dictionary_loader.c 942 2358 23 51 2900 2740 dictionary_loader.c
block_round_trip tests/fuzz/block_round_trip.c 713 2581 22 47 1993 1786 block_round_trip.c
dictionary_decompress tests/fuzz/dictionary_decompress.c 945 2353 23 54 2822 2740 dictionary_decompress.c
sequence_compression_api tests/fuzz/sequence_compression_api.c 757 2538 22 49 2144 1974 sequence_compression_api.c
dictionary_stream_round_trip tests/fuzz/dictionary_stream_round_trip.c 748 2546 23 55 2029 1982 dictionary_stream_round_trip.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: 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 31 20.1%
gold [1:9] 0 0.0%
yellow [10:29] 2 1.29%
greenyellow [30:49] 2 1.29%
lawngreen 50+ 119 77.2%
All colors 154 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
9 3 ZSTD_isLegacy call site: 00003 MEM_swap32
8 30 ZSTDv06_getFrameParams call site: 00030 MEM_swap64
3 41 ZSTDv07_getFrameParams call site: 00041 MEM_readLE32
2 27 ZSTDv06_getFrameParams call site: 00027
2 65 MEM_writeLE32 call site: 00065 MEM_swap32
2 119 ZSTD_findFrameSizeInfo call site: 00119 MEM_readLE24
1 86 ZSTD_getFrameHeader_advanced call site: 00086 assert
1 89 ZSTD_getFrameHeader_advanced call site: 00089 assert
1 111 ZSTD_findFrameSizeInfo call site: 00111 ERR_isError
1 122 MEM_readLE24 call site: 00122 RETURN_ERROR_IF
1 139 ZSTD_findDecompressedSize call site: 00139 ZSTD_findFrameCompressedSize

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/zstd_frame_info.c 11
lib/decompress/zstd_decompress.c 29
lib/legacy/zstd_legacy.h 5
lib/common/mem.h 16
lib/legacy/zstd_v05.c 3
lib/legacy/zstd_v06.c 6
lib/legacy/zstd_v07.c 6
lib/common/zstd_common.c 1
lib/common/error_private.h 1
lib/decompress/zstd_decompress_block.c 2

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 181 25.9%
gold [1:9] 8 1.14%
yellow [10:29] 4 0.57%
greenyellow [30:49] 2 0.28%
lawngreen 50+ 503 72.0%
All colors 698 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 664 ZSTD_freeDCtx call site: 00664 ZSTD_freeLegacyStreamContext
12 84 HUF_getDTableDesc call site: 00084 HUF_decompress4X_usingDTable
12 626 ZSTD_execSequence call site: 00626 ZSTD_assertValidSequence
8 230 HUF_decompress4X2_usingDTable_internal call site: 00230 HUF_decompress1X_DCtx_wksp
7 31 ZSTD_decompressBegin call site: 00031 perror
7 59 MEM_readLE32 call site: 00059 MEM_swap32
7 587 ZSTD_wildcopy call site: 00587 ZSTD_memmove
6 8 FUZZ_malloc_rand call site: 00008 FUZZ_dataProducer_int32Range
6 129 MEM_readLE64 call site: 00129 MEM_swap64
5 442 HUF_readDTableX2_wksp call site: 00442 HUF_decompress1X2_DCtx_wksp
5 529 ZSTD_decodeSequence call site: 00529
4 170 ZSTD_countTrailingZeros32 call site: 00170 ZSTD_countTrailingZeros32

Runtime coverage analysis

Covered functions
136
Functions that are reachable but not covered
66
Reachable functions
88
Percentage of reachable functions covered
25.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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 10
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 4
lib/decompress/zstd_decompress.c 19
lib/common/allocations.h 4
lib/common/zstd_internal.h 15
programs/zstdcli_trace.c 1
programs/timefn.c 6
lib/decompress/zstd_decompress_block.c 55
lib/legacy/zstd_v04.c 5
lib/common/mem.h 18
lib/decompress/huf_decompress.c 57
lib/common/bits.h 15
lib/common/entropy_common.c 19
lib/common/fse_decompress.c 23
lib/common/error_private.h 1
lib/common/bitstream.h 4
lib/common/fse.h 2
lib/legacy/zstd_v03.c 3
lib/common/zstd_common.c 1
lib/decompress/zstd_ddict.c 1
zlibWrapper/zstd_zlibwrapper.c 2
lib/legacy/zstd_legacy.h 5
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

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 928 39.3%
gold [1:9] 15 0.63%
yellow [10:29] 22 0.93%
greenyellow [30:49] 4 0.16%
lawngreen 50+ 1388 58.8%
All colors 2357 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
275 674 ZSTDv02_decompress call site: 00674 ZSTD_decompress_with_dict
36 616 ZSTD_execSequenceEnd call site: 00616 ZSTD_assertValidSequence
35 1744 HUFv07_readDTableX4 call site: 01744 FSEv07_readNCount
34 331 FSE_decompress_wksp_body call site: 00331 BIT_initDStream
33 532 ZSTD_decompressSequences_body call site: 00532 ZSTD_memcpy
32 481 HUF_decompress4X_hufOnly_wksp call site: 00481 ZSTD_allocateLiteralsBuffer
28 1112 HUFv05_fillDTableX4 call site: 01112 FSEv05_readNCount
28 1427 HUFv06_fillDTableX4 call site: 01427 FSEv06_readNCount
21 2171 ZSTD_decompressBegin_usingDict call site: 02171 ZSTD_loadDEntropy
20 2211 ZSTD_buildFSETable_body call site: 02211 FSE_readNCount
20 2287 ZSTD_decompressFrame call site: 02287 ZSTD_trace_decompress_end
17 223 HUF_decompress4X2_usingDTable_internal_fast call site: 00223 HUF_decodeLastSymbolX2

Runtime coverage analysis

Covered functions
462
Functions that are reachable but not covered
38
Reachable functions
123
Percentage of reachable functions covered
69.11%
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 13
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/decompress/zstd_decompress.c 81
lib/common/allocations.h 4
lib/common/zstd_internal.h 15
lib/decompress/zstd_ddict.c 3
lib/legacy/zstd_legacy.h 25
lib/common/mem.h 20
lib/common/zstd_common.c 2
lib/common/error_private.h 2
lib/legacy/zstd_v01.c 8
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_v04.c 9
lib/decompress/huf_decompress.c 57
lib/common/bits.h 15
lib/common/entropy_common.c 19
lib/common/fse_decompress.c 23
lib/common/bitstream.h 4
lib/common/fse.h 2
lib/legacy/zstd_v03.c 6
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
zlibWrapper/zstd_zlibwrapper.c 2
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_compress.c 2

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 998 36.1%
gold [1:9] 20 0.72%
yellow [10:29] 26 0.94%
greenyellow [30:49] 7 0.25%
lawngreen 50+ 1710 61.9%
All colors 2761 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
275 2097 ZSTDv02_decompress call site: 02097 ZSTD_decompress_with_dict
48 2679 ZSTD_decompressContinueStream call site: 02679 ZSTD_decompressBlock_internal
42 1398 ZSTDv07_decompressBegin_usingDict call site: 01398 ZSTDv07_decompress_insertDictionary
41 1227 ZBUFFv04_decompressInit call site: 01227 ZSTD_initDStream
36 2039 ZSTD_execSequenceEnd call site: 02039 ZSTD_assertValidSequence
34 1755 FSE_decompress_wksp_body call site: 01755 BIT_initDStream
33 1955 ZSTD_decompressSequences_body call site: 01955 ZSTD_memcpy
31 1905 HUF_decompress4X_hufOnly_wksp call site: 01905 ZSTD_allocateLiteralsBuffer
28 1298 HUFv05_fillDTableX4 call site: 01298 FSEv05_readNCount
28 1355 HUFv06_fillDTableX4 call site: 01355 FSEv06_readNCount
21 2506 ZSTD_decompressBegin_usingDict call site: 02506 ZSTD_loadDEntropy
20 2546 ZSTD_buildFSETable_body call site: 02546 FSE_readNCount

Runtime coverage analysis

Covered functions
529
Functions that are reachable but not covered
120
Reachable functions
468
Percentage of reachable functions covered
74.36%
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 18
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/decompress/zstd_decompress.c 104
lib/common/allocations.h 6
lib/common/zstd_internal.h 16
lib/decompress/zstd_ddict.c 3
zlibWrapper/zstd_zlibwrapper.c 2
lib/legacy/zstd_legacy.h 40
lib/legacy/zstd_v04.c 14
lib/deprecated/zbuff_decompress.c 4
lib/legacy/zstd_v05.c 88
lib/common/mem.h 20
lib/common/error_private.h 2
lib/legacy/zstd_v06.c 89
lib/legacy/zstd_v07.c 103
lib/common/zstd_common.c 2
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_v01.c 8
lib/decompress/huf_decompress.c 57
lib/common/bits.h 15
lib/common/entropy_common.c 19
lib/common/fse_decompress.c 23
lib/common/bitstream.h 4
lib/common/fse.h 2
lib/legacy/zstd_v03.c 6
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_compress.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 1997 71.6%
gold [1:9] 6 0.21%
yellow [10:29] 8 0.28%
greenyellow [30:49] 3 0.10%
lawngreen 50+ 775 27.7%
All colors 2789 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
1093 1088 ZSTD_freeDCtx call site: 01088 ZSTDv07_decompress_usingDict
296 756 ZSTD_decompressSequences_body call site: 00756 ZSTD_decompressMultiFrame
163 2391 ZSTD_decompressStream call site: 02391 ZSTD_decompressStream
88 2557 ZSTD_decompressStream call site: 02557 ZSTD_decompressLegacyStream
32 1055 ZSTD_freeDCtx call site: 01055 ZSTD_freeLegacyStreamContext
25 154 ZSTD_decompressMultiFrame call site: 00154 ZSTD_decompressLegacy
21 2218 ZSTD_decompressBegin_usingDict call site: 02218 ZSTD_loadDEntropy
20 2258 ZSTD_buildFSETable_body call site: 02258 FSE_readNCount
20 2331 ZSTD_decompressFrame call site: 02331 ZSTD_trace_decompress_end
12 734 ZSTD_execSequence call site: 00734 ZSTD_assertValidSequence
12 2292 ZSTD_decodeFrameHeader call site: 02292 ZSTD_DCtx_selectFrameDDict
11 2701 ZSTD_decompressContinue call site: 02701 ZSTD_decodeFrameHeader

Runtime coverage analysis

Covered functions
194
Functions that are reachable but not covered
387
Reachable functions
461
Percentage of reachable functions covered
16.05%
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 18
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/decompress/zstd_decompress.c 104
lib/legacy/zstd_legacy.h 40
lib/common/mem.h 20
lib/common/zstd_common.c 2
lib/common/error_private.h 2
lib/decompress/zstd_decompress_block.c 61
lib/common/allocations.h 6
lib/common/zstd_internal.h 16
lib/decompress/zstd_ddict.c 3
zlibWrapper/zstd_zlibwrapper.c 2
lib/legacy/zstd_v01.c 8
lib/legacy/zstd_v04.c 14
lib/decompress/huf_decompress.c 57
lib/common/bits.h 15
lib/common/entropy_common.c 19
lib/common/fse_decompress.c 23
lib/common/bitstream.h 4
lib/common/fse.h 2
lib/legacy/zstd_v03.c 6
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 4
lib/legacy/zstd_v05.c 88
lib/legacy/zstd_v06.c 89
lib/legacy/zstd_v07.c 103
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_compress.c 2

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 350 35.0%
gold [1:9] 5 0.50%
yellow [10:29] 2 0.20%
greenyellow [30:49] 1 0.10%
lawngreen 50+ 640 64.1%
All colors 998 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
254 25 HIST_count call site: 00025 HIST_count_sve2
10 520 MEM_writeLEST call site: 00520 MEM_writeLE32
8 476 FSE_buildCTable_wksp call site: 00476 DEBUGLOG
6 533 MEM_writeLE64 call site: 00533 MEM_swap64
6 598 ZSTD_countTrailingZeros32 call site: 00598 ZSTD_countTrailingZeros32
4 438 FSE_isError call site: 00438 RAWLOG
4 847 HUF_decompress1X_usingDTable call site: 00847 assert
3 308 ZSTD_countLeadingZeros32 call site: 00308
3 312 ZSTD_countLeadingZeros32 call site: 00312 ZSTD_countLeadingZeros32_fallback
3 594 ZSTD_countTrailingZeros32 call site: 00594
3 826 HUF_compress1X_usingCTable_internal_body call site: 00826 HUF_compress1X_usingCTable_internal_body_loop
3 921 ZSTD_countTrailingZeros64 call site: 00921

Runtime coverage analysis

Covered functions
175
Functions that are reachable but not covered
119
Reachable functions
258
Percentage of reachable functions covered
53.88%
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/huf_round_trip.c 31
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 3
lib/compress/hist.c 34
lib/common/bits.h 15
lib/compress/huf_compress.c 65
lib/compress/fse_compress.c 28
lib/common/error_private.h 2
lib/common/entropy_common.c 19
lib/common/fse.h 7
lib/common/bitstream.h 10
lib/common/mem.h 22
lib/decompress/huf_decompress.c 50
lib/common/fse_decompress.c 23
lib/legacy/zstd_v03.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 3004 65.6%
gold [1:9] 12 0.26%
yellow [10:29] 8 0.17%
greenyellow [30:49] 12 0.26%
lawngreen 50+ 1538 33.6%
All colors 4574 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
1088 3197 ZSTD_freeDCtx call site: 03197 ZSTDv07_decompress_usingDict
296 2862 ZSTD_decompressSequences_body call site: 02862 ZSTD_decompressMultiFrame
263 1256 MEM_writeLE24 call site: 01256 ZSTD_compressSuperBlock
106 575 ZSTD_hash7Ptr call site: 00575 ZSTD_updateTree
71 2163 ZSTD_blockSplitterEnabled call site: 02163 ZSTD_compressBlock_splitBlock
62 4507 ZSTD_freeCCtxContent call site: 04507 ZSTDMT_freeCCtxPool
48 1142 ZSTD_storeSeqOnly call site: 01142 ZSTD_ldm_generateSequences
45 2294 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 02294 ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
44 1847 ZSTD_buildSequencesStatistics call site: 01847 ZSTD_compressSubBlock_multi
42 1998 HUF_compress4X_usingCTable_internal call site: 01998 ZSTD_getErrorName
41 1191 ZSTD_buildSeqStore call site: 01191 ZSTD_transferSequences_wBlockDelim
40 1764 ZSTD_selectEncodingType call site: 01764 ZSTD_NCountCost

Runtime coverage analysis

Covered functions
398
Functions that are reachable but not covered
330
Reachable functions
602
Percentage of reachable functions covered
45.18%
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 20
tests/fuzz/fuzz_data_producer.c 3
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 233
lib/common/allocations.h 4
lib/common/zstd_internal.h 15
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 75
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 24
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/decompress/zstd_ddict.c 3
lib/legacy/zstd_legacy.h 25
lib/legacy/zstd_v01.c 8
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_v04.c 9
lib/decompress/huf_decompress.c 57
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7

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 1677 48.9%
gold [1:9] 0 0.0%
yellow [10:29] 4 0.11%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1744 50.9%
All colors 3426 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
275 3133 testRoundTrip call site: 03133 ZSTD_decompress_with_dict
254 1937 ZSTD_buildBlockEntropyStats_literals call site: 01937 HIST_count_sve2
101 1415 ZSTD_compressStream2 call site: 01415 ZSTDMT_compressStream_generic
96 1002 ZSTD_CCtx_init_compressStream2 call site: 01002 ZSTDMT_initCStream_internal
72 1151 ZSTD_freeCCtx call site: 01151 ZSTD_createCDict_advanced
65 1519 MEM_writeLE16 call site: 01519 ZSTDMT_flushProduced
45 1676 ZSTD_optimalBlockSize call site: 01676 ZSTD_splitBlock
43 1106 ZSTD_freeCCtxContent call site: 01106 ZSTDMT_freeCCtxPool
41 2522 ZSTD_buildBlockEntropyStats call site: 02522 ZSTD_compressSubBlock_multi
33 1593 MEM_writeLE32 call site: 01593 ZSTD_CCtx_trace
32 956 FSE_bitCost call site: 00956 ZSTD_loadDictionaryContent
30 3018 ZSTD_compressStream_generic call site: 03018 ZSTD_compressEnd_public

Runtime coverage analysis

Covered functions
590
Functions that are reachable but not covered
319
Reachable functions
692
Percentage of reachable functions covered
53.9%
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/generate_sequences.c 24
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 271
lib/common/allocations.h 6
lib/common/zstd_internal.h 14
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
tests/fuzz/zstd_helpers.c 10
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_compress_internal.h 47
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstdmt_compress.c 85
lib/common/pool.c 16
lib/common/threading.c 18
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
doc/educational_decoder/zstd_decompress.c 69

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 3583 63.0%
gold [1:9] 0 0.0%
yellow [10:29] 2 0.03%
greenyellow [30:49] 10 0.17%
lawngreen 50+ 2084 36.6%
All colors 5679 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
772 3455 MEM_readLE16 call site: 03455 ZBUFFv07_decompressContinue
391 4989 ZSTD_decompressSequences_body call site: 04989 ZSTD_decompressMultiFrame
254 1895 ZSTD_buildBlockEntropyStats_literals call site: 01895 HIST_count_sve2
253 3200 ZSTD_decompressStream call site: 03200 ZSTD_decompressStream
200 4301 ZSTD_freeDCtx call site: 04301 ZSTD_decompressLegacyStream
174 1026 ZSTD_CCtx_init_compressStream2 call site: 01026 ZSTDMT_initCStream_internal
101 1367 ZSTD_compressStream2 call site: 01367 ZSTDMT_compressStream_generic
72 1471 MEM_writeLE16 call site: 01471 ZSTDMT_flushProduced
62 82 ZSTD_freeCCtxContent call site: 00082 ZSTDMT_freeCCtxPool
62 3065 ZSTD_seekable_initAdvanced call site: 03065 gzseek
48 1773 ZSTD_storeSeqOnly call site: 01773 ZSTD_ldm_generateSequences
41 2480 ZSTD_buildBlockEntropyStats call site: 02480 ZSTD_compressSubBlock_multi

Runtime coverage analysis

Covered functions
602
Functions that are reachable but not covered
646
Reachable functions
1044
Percentage of reachable functions covered
38.12%
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 25
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 265
contrib/seekable_format/zstdseek_compress.c 28
lib/common/allocations.h 6
lib/common/zstd_internal.h 16
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/compress/zstdmt_compress.c 85
lib/common/pool.c 16
lib/common/threading.c 18
contrib/seekable_format/zstdseek_decompress.c 24
lib/decompress/zstd_decompress.c 103
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_compress_internal.h 47
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/common/mem.h 24
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
zlibWrapper/gzlib.c 6
tests/regression/data.c 8
programs/util.c 13
lib/decompress/zstd_ddict.c 3
lib/legacy/zstd_legacy.h 40
lib/legacy/zstd_v04.c 14
lib/deprecated/zbuff_decompress.c 4
lib/legacy/zstd_v05.c 88
lib/legacy/zstd_v06.c 89
lib/legacy/zstd_v07.c 103
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_v01.c 8
lib/decompress/huf_decompress.c 57
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69

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 882 31.3%
gold [1:9] 4 0.14%
yellow [10:29] 1 0.03%
greenyellow [30:49] 4 0.14%
lawngreen 50+ 1925 68.3%
All colors 2816 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
275 2489 roundTripTest call site: 02489 ZSTD_decompress_with_dict
254 1273 ZSTD_buildBlockEntropyStats_literals call site: 01273 HIST_count_sve2
41 2007 ZSTD_compressSubBlock_literal call site: 02007 ZSTD_getErrorName
32 2781 ZSTD_freeDCtx call site: 02781 ZSTD_freeLegacyStreamContext
19 2391 ZSTD_compressEnd_public call site: 02391 ZSTD_trace_compress_end
16 707 ZSTD_countTrailingZeros32 call site: 00707 ZSTD_countLeadingZeros64
15 2304 ZSTD_compressSeqStore_singleBlock call site: 02304 ZSTD_copyBlockSequences
7 139 ZSTD_compressBegin_internal call site: 00139 perror
7 556 MEM_readLE32 call site: 00556 MEM_swap32
7 1125 ZSTD_storeSeq call site: 01125 ZSTD_memmove
6 70 roundTripTest call site: 00070 ZSTD_compressCCtx
6 569 MEM_readLE64 call site: 00569 MEM_swap64

Runtime coverage analysis

Covered functions
874
Functions that are reachable but not covered
234
Reachable functions
713
Percentage of reachable functions covered
67.18%
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 19
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 236
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 2
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 14
tests/roundTripCrash.c 7
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
doc/educational_decoder/zstd_decompress.c 69
lib/decompress/zstd_ddict.c 1
lib/legacy/zstd_legacy.h 5
lib/legacy/zstd_v04.c 1
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

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 1022 36.2%
gold [1:9] 1 0.03%
yellow [10:29] 8 0.28%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1786 63.4%
All colors 2817 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
282 2483 ZSTD_freeCCtx call site: 02483 ZSTD_compressCCtx
254 1274 ZSTD_buildBlockEntropyStats_literals call site: 01274 HIST_count_sve2
45 1006 ZSTD_optimalBlockSize call site: 01006 ZSTD_splitBlock
41 2008 ZSTD_compressSubBlock_literal call site: 02008 ZSTD_getErrorName
32 2782 ZSTD_freeDCtx call site: 02782 ZSTD_freeLegacyStreamContext
28 937 FSE_bitCost call site: 00937 ZSTD_loadDictionaryContent
19 748 ZSTD_updateTree_internal call site: 00748 ZSTD_loadZstdDictionary
19 2392 ZSTD_compressEnd_public call site: 02392 ZSTD_trace_compress_end
16 708 ZSTD_countTrailingZeros32 call site: 00708 ZSTD_countLeadingZeros64
15 2305 ZSTD_compressSeqStore_singleBlock call site: 02305 ZSTD_copyBlockSequences
11 128 ZSTD_resolveRowMatchFinderMode call site: 00128 ZSTD_compress_advanced_internal
11 901 HUF_setValue call site: 00901 FSE_buildCTable_wksp

Runtime coverage analysis

Covered functions
804
Functions that are reachable but not covered
258
Reachable functions
713
Percentage of reachable functions covered
63.81%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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 19
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 236
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 2
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 14
tests/roundTripCrash.c 7
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
doc/educational_decoder/zstd_decompress.c 69
lib/decompress/zstd_ddict.c 1
lib/legacy/zstd_legacy.h 5
lib/legacy/zstd_v04.c 1
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

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 51 13.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.25%
lawngreen 50+ 336 86.5%
All colors 388 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
7 57 MEM_readLE32 call site: 00057 MEM_swap32
6 136 MEM_readLE64 call site: 00136 MEM_swap64
4 264 HUF_decompress1X_usingDTable call site: 00264 assert
3 67 ZSTD_countTrailingZeros32 call site: 00067
3 71 ZSTD_countTrailingZeros32 call site: 00071 ZSTD_countTrailingZeros32_fallback
3 87 ZSTD_countLeadingZeros32 call site: 00087
3 91 ZSTD_countLeadingZeros32 call site: 00091 ZSTD_countLeadingZeros32_fallback
3 317 ZSTD_countTrailingZeros64 call site: 00317
3 321 ZSTD_countTrailingZeros64 call site: 00321 ZSTD_countTrailingZeros32
2 148 FSE_initDState call site: 00148
2 272 HUF_decompress4X_usingDTable call site: 00272 HUF_decompress4X1_usingDTable_internal
2 332 HUF_decodeStreamX1 call site: 00332 HUF_DECODE_SYMBOLX1_0

Runtime coverage analysis

Covered functions
99
Functions that are reachable but not covered
68
Reachable functions
133
Percentage of reachable functions covered
48.87%
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/huf_decompress.c 16
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 2
lib/decompress/huf_decompress.c 50
lib/common/entropy_common.c 19
lib/common/fse_decompress.c 23
lib/common/error_private.h 1
lib/common/mem.h 17
lib/common/bits.h 15
lib/common/bitstream.h 4
lib/common/fse.h 2
lib/legacy/zstd_v03.c 2
lib/common/zstd_common.c 1

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 29 28.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 5 4.85%
lawngreen 50+ 69 66.9%
All colors 103 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
7 50 MEM_readLE32 call site: 00050 MEM_swap32
3 20 FSE_writeNCount call site: 00020 FSE_writeNCount_generic
3 60 ZSTD_countTrailingZeros32 call site: 00060
3 64 ZSTD_countTrailingZeros32 call site: 00064 ZSTD_countTrailingZeros32_fallback
3 80 ZSTD_countLeadingZeros32 call site: 00080
3 84 ZSTD_countLeadingZeros32 call site: 00084 ZSTD_countLeadingZeros32_fallback
2 24 FSE_writeNCount_generic call site: 00024 ERROR
2 37 FSE_readNCount call site: 00037 FSE_readNCount_body_bmi2
1 11 FUZZ_dataProducer_int32Range call site: 00011 FUZZ_dataProducer_uint32Range
1 27 FSE_writeNCount_generic call site: 00027 ERROR
1 100 LLVMFuzzerTestOneInput call site: 00100

Runtime coverage analysis

Covered functions
22
Functions that are reachable but not covered
12
Reachable functions
22
Percentage of reachable functions covered
45.45%
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 15
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 2
lib/compress/fse_compress.c 4
lib/common/entropy_common.c 15
lib/common/error_private.h 1
lib/common/mem.h 8
lib/common/bits.h 11

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 1168 47.1%
gold [1:9] 7 0.28%
yellow [10:29] 9 0.36%
greenyellow [30:49] 12 0.48%
lawngreen 50+ 1283 51.7%
All colors 2479 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
254 1261 ZSTD_buildBlockEntropyStats_literals call site: 01261 HIST_count_sve2
142 735 ZSTD_updateTree_internal call site: 00735 ZSTD_loadZstdDictionary
62 2413 ZSTD_freeCCtxContent call site: 02413 ZSTDMT_freeCCtxPool
48 1138 ZSTD_storeSeqOnly call site: 01138 ZSTD_ldm_generateSequences
42 1994 HUF_compress4X_usingCTable_internal call site: 01994 ZSTD_getErrorName
41 1846 ZSTD_buildBlockEntropyStats call site: 01846 ZSTD_compressSubBlock_multi
35 575 ZSTD_hash8Ptr call site: 00575 ZSTD_dedicatedDictSearch_lazy_loadDictionary
29 421 ZSTD_cwksp_estimated_space_within_bounds call site: 00421 ZSTD_resetCCtx_byCopyingCDict
28 924 FSE_bitCost call site: 00924 ZSTD_loadDictionaryContent
23 688 ZSTD_countTrailingZeros64 call site: 00688 ZSTD_countLeadingZeros64
23 2108 ZSTD_encodeSequences_body call site: 02108 ZSTD_compressSubBlock
22 478 ZSTD_window_update call site: 00478 ZSTD_overflowCorrectIfNeeded

Runtime coverage analysis

Covered functions
408
Functions that are reachable but not covered
253
Reachable functions
567
Percentage of reachable functions covered
55.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/simple_compress.c 17
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 233
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7

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 1035 36.8%
gold [1:9] 2 0.07%
yellow [10:29] 6 0.21%
greenyellow [30:49] 2 0.07%
lawngreen 50+ 1766 62.8%
All colors 2811 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
275 2489 roundTripTest call site: 02489 ZSTD_decompress_with_dict
254 1273 ZSTD_buildBlockEntropyStats_literals call site: 01273 HIST_count_sve2
41 2007 ZSTD_compressSubBlock_literal call site: 02007 ZSTD_getErrorName
32 2776 ZSTD_freeDCtx call site: 02776 ZSTD_freeLegacyStreamContext
29 433 ZSTD_cwksp_estimated_space_within_bounds call site: 00433 ZSTD_resetCCtx_byCopyingCDict
28 936 FSE_bitCost call site: 00936 ZSTD_loadDictionaryContent
19 747 ZSTD_updateTree_internal call site: 00747 ZSTD_loadZstdDictionary
19 2391 ZSTD_compressEnd_public call site: 02391 ZSTD_trace_compress_end
16 707 ZSTD_countTrailingZeros32 call site: 00707 ZSTD_countLeadingZeros64
15 2304 ZSTD_compressSeqStore_singleBlock call site: 02304 ZSTD_copyBlockSequences
11 900 HUF_setValue call site: 00900 FSE_buildCTable_wksp
10 151 ZSTD_compressBegin_internal call site: 00151 ZSTD_resetCCtx_usingCDict

Runtime coverage analysis

Covered functions
708
Functions that are reachable but not covered
253
Reachable functions
713
Percentage of reachable functions covered
64.52%
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_round_trip.c 16
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 236
tests/fuzz/fuzz_data_producer.c 5
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 2
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 14
tests/roundTripCrash.c 7
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
doc/educational_decoder/zstd_decompress.c 69
lib/decompress/zstd_ddict.c 1
lib/legacy/zstd_legacy.h 5
lib/legacy/zstd_v04.c 1
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

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 2575 50.1%
gold [1:9] 2 0.03%
yellow [10:29] 9 0.17%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2549 49.6%
All colors 5135 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
1087 3845 ZSTD_freeDCtx call site: 03845 ZSTDv07_decompress_usingDict
296 3513 ZSTD_decompressSequences_body call site: 03513 ZSTD_decompressMultiFrame
254 1849 ZSTD_buildBlockEntropyStats_literals call site: 01849 HIST_count_sve2
45 1588 ZSTD_optimalBlockSize call site: 01588 ZSTD_splitBlock
41 1449 ZSTDMT_flushProduced call site: 01449 ZSTD_getErrorName
32 804 FSE_bitCost call site: 00804 ZSTD_loadDictionaryContent
32 3812 ZSTD_freeDCtx call site: 03812 ZSTD_freeLegacyStreamContext
29 1281 ZSTD_cwksp_estimated_space_within_bounds call site: 01281 ZSTD_resetCCtx_byCopyingCDict
25 3142 ZSTD_isLegacy call site: 03142 ZSTD_decompressLegacy
24 2979 ZSTD_clearDict call site: 02979 ZSTD_createDDict_advanced
23 3106 ZSTD_buildFSETable_body call site: 03106 ZSTD_DCtx_loadDictionary_advanced
19 615 ZSTD_updateTree_internal call site: 00615 ZSTD_loadZstdDictionary

Runtime coverage analysis

Covered functions
743
Functions that are reachable but not covered
491
Reachable functions
948
Percentage of reachable functions covered
48.21%
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 22
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 259
lib/common/allocations.h 6
lib/common/zstd_internal.h 16
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 82
tests/longmatch.c 3
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_compress_internal.h 47
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/common/mem.h 24
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstdmt_compress.c 85
lib/common/pool.c 16
lib/common/threading.c 18
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
tests/fuzz/dictionary_loader.c 6
lib/decompress/zstd_ddict.c 14
lib/decompress/huf_decompress.c 57
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_legacy.h 25
lib/legacy/zstd_v01.c 8
lib/legacy/zstd_v04.c 9
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93

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 3228 63.3%
gold [1:9] 15 0.29%
yellow [10:29] 7 0.13%
greenyellow [30:49] 16 0.31%
lawngreen 50+ 1830 35.9%
All colors 5096 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
1088 3844 ZSTD_freeDCtx call site: 03844 ZSTDv07_decompress_usingDict
296 3512 ZSTD_decompressSequences_body call site: 03512 ZSTD_decompressMultiFrame
266 1827 ZSTD_isRLE call site: 01827 ZSTD_compressSuperBlock
145 999 ZSTD_initCCtx call site: 00999 ZSTD_createCDict_advanced
101 1311 ZSTD_compressStream2 call site: 01311 ZSTDMT_compressStream_generic
96 817 ZSTD_CCtx_init_compressStream2 call site: 00817 ZSTDMT_initCStream_internal
85 431 ZSTD_fillDoubleHashTableForCCtx call site: 00431 ZSTD_updateTree
71 2697 ZSTD_blockSplitterEnabled call site: 02697 ZSTD_compressBlock_splitBlock
65 1415 MEM_writeLE16 call site: 01415 ZSTDMT_flushProduced
48 1717 ZSTD_storeSeqOnly call site: 01717 ZSTD_ldm_generateSequences
45 2828 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 02828 ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
44 2421 ZSTD_buildSequencesStatistics call site: 02421 ZSTD_compressSubBlock_multi

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/dictionary_loader.c 22
tests/fuzz/fuzz_data_producer.c 3
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 258
tests/longmatch.c 3
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_cwksp.h 34
lib/common/allocations.h 6
zlibWrapper/zstd_zlibwrapper.c 2
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/compress/zstd_compress_internal.h 47
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/common/mem.h 24
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstdmt_compress.c 85
lib/common/pool.c 16
lib/common/threading.c 18
lib/common/zstd_internal.h 16
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/decompress/zstd_decompress.c 77
lib/decompress/zstd_ddict.c 14
lib/decompress/huf_decompress.c 57
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_legacy.h 25
lib/legacy/zstd_v01.c 8
lib/legacy/zstd_v04.c 9
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93

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 1682 59.6%
gold [1:9] 14 0.49%
yellow [10:29] 5 0.17%
greenyellow [30:49] 1 0.03%
lawngreen 50+ 1116 39.6%
All colors 2818 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
282 2486 ZSTD_freeCCtx call site: 02486 ZSTD_compressCCtx
263 1268 MEM_writeLE24 call site: 01268 ZSTD_compressSuperBlock
82 2164 ZSTD_minGain call site: 02164 ZSTD_compressBlock_splitBlock
68 1003 ZSTD_compressContinue_internal call site: 01003 ZSTD_compress_frameChunk
63 2010 HUF_compress4X_usingCTable_internal call site: 02010 ZSTD_compressSubBlock_sequences
62 2422 ZSTD_freeCCtxContent call site: 02422 ZSTDMT_freeCCtxPool
48 1154 ZSTD_storeSeqOnly call site: 01154 ZSTD_ldm_generateSequences
46 2306 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 02306 ZSTD_compressBlock_internal
44 1859 ZSTD_buildSequencesStatistics call site: 01859 ZSTD_compressSubBlock_multi
38 2376 ZSTD_compressContinue_internal call site: 02376 ZSTD_CCtx_trace
37 2124 ZSTD_encodeSequences_body call site: 02124 ZSTD_compressSubBlock
36 932 FSE_buildCTable_wksp call site: 00932 ZSTD_loadDictionaryContent

Runtime coverage analysis

Covered functions
448
Functions that are reachable but not covered
439
Reachable functions
713
Percentage of reachable functions covered
38.43%
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 18
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 236
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 2
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 14
tests/roundTripCrash.c 7
lib/common/bits.h 22
programs/fileio.c 1
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_ldm.c 38
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
doc/educational_decoder/zstd_decompress.c 69
lib/decompress/zstd_ddict.c 1
lib/legacy/zstd_legacy.h 5
lib/legacy/zstd_v04.c 1
lib/deprecated/zbuff_decompress.c 1
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 2197 45.7%
gold [1:9] 11 0.22%
yellow [10:29] 15 0.31%
greenyellow [30:49] 5 0.10%
lawngreen 50+ 2576 53.6%
All colors 4804 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
275 3222 ZSTDv02_decompress call site: 03222 ZSTD_decompress_with_dict
263 1417 MEM_writeLE24 call site: 01417 ZSTD_compressSuperBlock
98 510 ZSTD_fillHashTableForCDict call site: 00510 ZSTD_updateTree
82 2313 ZSTD_minGain call site: 02313 ZSTD_compressBlock_splitBlock
68 1152 ZSTD_compressContinue_internal call site: 01152 ZSTD_compress_frameChunk
62 2578 ZSTD_freeCCtxContent call site: 02578 ZSTDMT_freeCCtxPool
49 1302 ZSTD_storeSeqOnly call site: 01302 ZSTD_ldm_generateSequences
46 2455 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 02455 ZSTD_compressBlock_internal
44 2008 ZSTD_buildSequencesStatistics call site: 02008 ZSTD_compressSubBlock_multi
42 2159 HUF_compress4X_usingCTable_internal call site: 02159 ZSTD_getErrorName
41 1352 ZSTD_buildSeqStore call site: 01352 ZSTD_transferSequences_wBlockDelim
40 1925 ZSTD_selectEncodingType call site: 01925 ZSTD_NCountCost

Runtime coverage analysis

Covered functions
750
Functions that are reachable but not covered
359
Reachable functions
945
Percentage of reachable functions covered
62.01%
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 20
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 2
lib/decompress/zstd_decompress.c 77
lib/common/allocations.h 4
lib/common/zstd_internal.h 15
tests/fuzz/zstd_helpers.c 9
lib/dictBuilder/fastcover.c 25
lib/compress/zstd_compress_internal.h 45
lib/common/mem.h 24
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/dictBuilder/cover.c 4
lib/dictBuilder/zdict.c 40
lib/common/bits.h 22
lib/compress/zstd_compress.c 240
programs/fileio.c 1
lib/compress/zstd_cwksp.h 34
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
lib/decompress/zstd_ddict.c 15
lib/decompress/huf_decompress.c 57
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_legacy.h 25
lib/legacy/zstd_v01.c 8
lib/legacy/zstd_v04.c 9
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93

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 1808 57.9%
gold [1:9] 89 2.85%
yellow [10:29] 7 0.22%
greenyellow [30:49] 1 0.03%
lawngreen 50+ 1213 38.9%
All colors 3118 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
282 2787 ZSTD_freeCCtx call site: 02787 ZSTD_compressCCtx
263 1569 MEM_writeLE24 call site: 01569 ZSTD_compressSuperBlock
108 2607 ZSTD_entropyCompressSeqStore_wExtLitBuffer call site: 02607 ZSTD_compressBlock_internal
99 519 ZSTD_fillHashTableForCDict call site: 00519 ZSTD_updateTree
94 1302 MEM_writeLE64 call site: 01302 ZSTD_compress_frameChunk
82 2465 ZSTD_minGain call site: 02465 ZSTD_compressBlock_splitBlock
63 1455 ZSTD_storeSeqOnly call site: 01455 ZSTD_ldm_generateSequences
62 2723 ZSTD_freeCCtxContent call site: 02723 ZSTDMT_freeCCtxPool
44 2160 ZSTD_buildSequencesStatistics call site: 02160 ZSTD_compressSubBlock_multi
42 2311 HUF_compress4X_usingCTable_internal call site: 02311 ZSTD_getErrorName
35 660 ZSTD_count call site: 00660 ZSTD_loadZstdDictionary
32 3080 ZSTD_freeDCtx call site: 03080 ZSTD_freeLegacyStreamContext

Runtime coverage analysis

Covered functions
426
Functions that are reachable but not covered
440
Reachable functions
757
Percentage of reachable functions covered
41.88%
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 32
tests/fuzz/fuzz_data_producer.c 4
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 250
lib/common/allocations.h 4
lib/common/zstd_internal.h 13
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 2
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 22
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_compress_internal.h 45
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/common/mem.h 22
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 2
lib/compress/fse_compress.c 28
lib/decompress/zstd_ddict.c 12
lib/decompress/huf_decompress.c 19
lib/decompress/zstd_decompress_block.c 9
tests/roundTripCrash.c 7
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 17
lib/common/pool.c 8
lib/common/threading.c 7
doc/educational_decoder/zstd_decompress.c 69
lib/legacy/zstd_legacy.h 5
lib/legacy/zstd_v04.c 1
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

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 2338 44.0%
gold [1:9] 5 0.09%
yellow [10:29] 5 0.09%
greenyellow [30:49] 1 0.01%
lawngreen 50+ 2954 55.7%
All colors 5303 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
1088 4051 ZSTD_freeDCtx call site: 04051 ZSTDv07_decompress_usingDict
296 3719 ZSTD_decompressSequences_body call site: 03719 ZSTD_decompressMultiFrame
254 1434 ZSTD_buildBlockEntropyStats_literals call site: 01434 HIST_count_sve2
45 1166 ZSTD_optimalBlockSize call site: 01166 ZSTD_splitBlock
41 2168 ZSTD_compressSubBlock_literal call site: 02168 ZSTD_getErrorName
32 4018 ZSTD_freeDCtx call site: 04018 ZSTD_freeLegacyStreamContext
25 3348 ZSTD_isLegacy call site: 03348 ZSTD_decompressLegacy
18 3071 ZSTD_compressStream2 call site: 03071 ZSTD_trace_compress_end
15 2465 ZSTD_compressSeqStore_singleBlock call site: 02465 ZSTD_copyBlockSequences
12 5231 ZSTD_decodeFrameHeader call site: 05231 ZSTD_DCtx_selectFrameDDict
10 3646 ZSTD_execSequence call site: 03646 ZSTD_execSequenceEnd
9 669 ZSTD_NbCommonBytes call site: 00669 ZSTD_countLeadingZeros64

Runtime coverage analysis

Covered functions
857
Functions that are reachable but not covered
229
Reachable functions
748
Percentage of reachable functions covered
69.39%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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 23
tests/fuzz/fuzz_data_producer.c 5
tests/fuzz/fuzz_helpers.c 3
lib/compress/zstd_compress.c 265
lib/common/allocations.h 6
lib/common/zstd_internal.h 16
zlibWrapper/zstd_zlibwrapper.c 2
lib/compress/zstd_cwksp.h 34
lib/common/zstd_common.c 3
lib/common/error_private.h 4
lib/decompress/zstd_decompress.c 77
tests/fuzz/zstd_helpers.c 9
lib/dictBuilder/fastcover.c 25
lib/compress/zstd_compress_internal.h 47
lib/common/mem.h 24
lib/dictBuilder/cover.c 4
lib/dictBuilder/zdict.c 40
lib/common/bits.h 22
programs/fileio.c 1
lib/compress/zstd_ldm.c 38
lib/compress/zstd_fast.c 5
lib/compress/zstd_double_fast.c 4
lib/compress/zstd_lazy.c 17
lib/compress/zstd_opt.c 10
lib/compress/huf_compress.c 66
lib/common/entropy_common.c 20
lib/common/fse_decompress.c 23
lib/common/bitstream.h 10
lib/common/fse.h 7
lib/legacy/zstd_v03.c 6
lib/compress/fse_compress.c 28
programs/zstdcli_trace.c 7
programs/timefn.c 6
lib/compress/zstd_preSplit.c 15
lib/compress/zstd_compress_superblock.c 39
lib/compress/hist.c 33
lib/compress/zstd_compress_sequences.c 36
lib/compress/zstd_compress_literals.c 17
lib/common/error_private.c 1
lib/compress/zstdmt_compress.c 85
lib/common/pool.c 16
lib/common/threading.c 18
tests/longmatch.c 3
lib/decompress/zstd_ddict.c 14
lib/decompress/huf_decompress.c 57
lib/decompress/zstd_decompress_block.c 61
lib/legacy/zstd_legacy.h 25
lib/legacy/zstd_v01.c 8
lib/legacy/zstd_v04.c 9
lib/legacy/zstd_v02.c 1
doc/educational_decoder/zstd_decompress.c 69
lib/deprecated/zbuff_decompress.c 1
lib/legacy/zstd_v05.c 83
lib/legacy/zstd_v06.c 83
lib/legacy/zstd_v07.c 93

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
DiB_trainFromFiles /src/zstd/programs/dibio.c 10 ['char*', 'size_t', 'char**', 'int', 'size_t', 'ZDICT_legacy_params_t*', 'ZDICT_cover_params_t*', 'ZDICT_fastCover_params_t*', 'int', 'unsigned'] 21 0 73 15 18 733 0 2134 725
FIO_compressMultipleFilenames /src/zstd/programs/fileio.c 10 ['FIO_ctx_t*', 'FIO_prefs_t*', 'char**', 'char*', 'char*', 'char*', 'char*', 'char*', 'int', 'ZSTD_compressionParameters'] 22 0 55 13 16 835 0 1951 371
basicUnitTests /src/zstd/tests/zstreamtest.c 3 ['U32', 'double', 'int'] 18 0 1664 119 268 1195 0 3809 363
optimizeForSize /src/zstd/tests/paramgrill.c 8 ['char**', 'size_t', 'char*', 'constraint_t', 'paramValues_t', 'int', 'int', 'U32'] 12 0 145 25 35 229 0 492 312
test_gzio /src/zstd/zlibWrapper/examples/example.c 3 ['char*', 'Byte*', 'uLong'] 8 0 59 12 12 61 0 233 233
runTestMode /src/zstd/tests/decodecorpus.c 4 ['U32', 'unsigned', 'unsigned const', 'genType_e'] 22 0 15 4 6 997 0 3045 185
decode_frame /src/zstd/doc/educational_decoder/zstd_decompress.c 3 ['ostream_t*', 'istream_t*', 'dictionary_t*'] 10 0 6 2 1 62 1 151 148

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

Functions statically reachable by fuzzers
51.0%
1628 / 3214
Cyclomatic complexity statically reachable by fuzzers
60.0%
5918 / 9859

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/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', 'ZSTDv06_getFrameParams', 'ZSTDv07_getFrameParams', 'MEM_writeLE32', 'ZSTD_findFrameSizeInfo', 'ZSTD_getFrameHeader_advanced', 'MEM_readLE24']

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=['ZSTD_freeDCtx', 'HUF_getDTableDesc', 'ZSTD_execSequence', 'HUF_decompress4X2_usingDTable_internal', 'ZSTD_decompressBegin', 'MEM_readLE32', 'ZSTD_wildcopy', 'FUZZ_malloc_rand', 'MEM_readLE64', 'HUF_readDTableX2_wksp']

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=['ZSTDv02_decompress', 'ZSTD_execSequenceEnd', 'HUFv07_readDTableX4', 'FSE_decompress_wksp_body', 'ZSTD_decompressSequences_body', 'HUF_decompress4X_hufOnly_wksp', 'HUFv05_fillDTableX4', 'HUFv06_fillDTableX4', 'ZSTD_decompressBegin_usingDict', 'ZSTD_buildFSETable_body']

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=['ZSTDv02_decompress', 'ZSTD_decompressContinueStream', 'ZSTDv07_decompressBegin_usingDict', 'ZBUFFv04_decompressInit', 'ZSTD_execSequenceEnd', 'FSE_decompress_wksp_body', 'ZSTD_decompressSequences_body', 'HUF_decompress4X_hufOnly_wksp', 'HUFv05_fillDTableX4', 'HUFv06_fillDTableX4']

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=['ZSTD_freeDCtx', 'ZSTD_decompressSequences_body', 'ZSTD_decompressStream', 'ZSTD_decompressMultiFrame', 'ZSTD_decompressBegin_usingDict', 'ZSTD_buildFSETable_body', 'ZSTD_decompressFrame', 'ZSTD_execSequence']

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=['HIST_count', 'MEM_writeLEST', 'FSE_buildCTable_wksp', 'MEM_writeLE64', 'ZSTD_countTrailingZeros32', 'FSE_isError', 'HUF_decompress1X_usingDTable', 'ZSTD_countLeadingZeros32']

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=['ZSTD_freeDCtx', 'ZSTD_decompressSequences_body', 'MEM_writeLE24', 'ZSTD_hash7Ptr', 'ZSTD_blockSplitterEnabled', 'ZSTD_freeCCtxContent', 'ZSTD_storeSeqOnly', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_buildSequencesStatistics', 'HUF_compress4X_usingCTable_internal']

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=['testRoundTrip', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_compressStream2', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_freeCCtx', 'MEM_writeLE16', 'ZSTD_optimalBlockSize', 'ZSTD_freeCCtxContent', 'ZSTD_buildBlockEntropyStats', 'MEM_writeLE32']

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', 'ZSTD_decompressSequences_body', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_decompressStream', 'ZSTD_freeDCtx', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_compressStream2', 'MEM_writeLE16', 'ZSTD_freeCCtxContent', 'ZSTD_seekable_initAdvanced']

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=['roundTripTest', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_compressSubBlock_literal', 'ZSTD_freeDCtx', 'ZSTD_compressEnd_public', 'ZSTD_countTrailingZeros32', 'ZSTD_compressSeqStore_singleBlock', 'ZSTD_compressBegin_internal', 'MEM_readLE32', 'ZSTD_storeSeq']

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=['ZSTD_freeCCtx', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_optimalBlockSize', 'ZSTD_compressSubBlock_literal', 'ZSTD_freeDCtx', 'FSE_bitCost', 'ZSTD_updateTree_internal', 'ZSTD_compressEnd_public', 'ZSTD_countTrailingZeros32', 'ZSTD_compressSeqStore_singleBlock']

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=['MEM_readLE32', 'MEM_readLE64', 'HUF_decompress1X_usingDTable', 'ZSTD_countTrailingZeros32', 'ZSTD_countLeadingZeros32', 'ZSTD_countTrailingZeros64', 'FSE_initDState']

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

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_buildBlockEntropyStats_literals', 'ZSTD_updateTree_internal', 'ZSTD_freeCCtxContent', 'ZSTD_storeSeqOnly', 'HUF_compress4X_usingCTable_internal', 'ZSTD_buildBlockEntropyStats', 'ZSTD_hash8Ptr', 'ZSTD_cwksp_estimated_space_within_bounds', 'FSE_bitCost', 'ZSTD_countTrailingZeros64']

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=['roundTripTest', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_compressSubBlock_literal', 'ZSTD_freeDCtx', 'ZSTD_cwksp_estimated_space_within_bounds', 'FSE_bitCost', 'ZSTD_updateTree_internal', 'ZSTD_compressEnd_public', 'ZSTD_countTrailingZeros32', 'ZSTD_compressSeqStore_singleBlock']

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=['ZSTD_freeDCtx', 'ZSTD_decompressSequences_body', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_optimalBlockSize', 'ZSTDMT_flushProduced', 'FSE_bitCost', 'ZSTD_cwksp_estimated_space_within_bounds', 'ZSTD_isLegacy', 'ZSTD_clearDict']

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=['ZSTD_freeDCtx', 'ZSTD_decompressSequences_body', 'ZSTD_isRLE', 'ZSTD_initCCtx', 'ZSTD_compressStream2', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_fillDoubleHashTableForCCtx', 'ZSTD_blockSplitterEnabled', 'MEM_writeLE16', 'ZSTD_storeSeqOnly']

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_freeCCtx', 'MEM_writeLE24', 'ZSTD_minGain', 'ZSTD_compressContinue_internal', 'HUF_compress4X_usingCTable_internal', 'ZSTD_freeCCtxContent', 'ZSTD_storeSeqOnly', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_buildSequencesStatistics']

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=['ZSTDv02_decompress', 'MEM_writeLE24', 'ZSTD_fillHashTableForCDict', 'ZSTD_minGain', 'ZSTD_compressContinue_internal', 'ZSTD_freeCCtxContent', 'ZSTD_storeSeqOnly', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_buildSequencesStatistics', 'HUF_compress4X_usingCTable_internal']

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=['ZSTD_freeCCtx', 'MEM_writeLE24', 'ZSTD_entropyCompressSeqStore_wExtLitBuffer', 'ZSTD_fillHashTableForCDict', 'MEM_writeLE64', 'ZSTD_minGain', 'ZSTD_storeSeqOnly', 'ZSTD_freeCCtxContent', 'ZSTD_buildSequencesStatistics', 'HUF_compress4X_usingCTable_internal']

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=['ZSTD_freeDCtx', 'ZSTD_decompressSequences_body', 'ZSTD_buildBlockEntropyStats_literals', 'ZSTD_optimalBlockSize', 'ZSTD_compressSubBlock_literal', 'ZSTD_isLegacy', 'ZSTD_compressStream2', 'ZSTD_compressSeqStore_singleBlock', 'ZSTD_decodeFrameHeader']

Fuzz driver synthesis

New fuzzers

The below fuzzers are templates and suggestions for how to target the set of optimal functions above

dibio.c

Target file: /src/zstd/programs/dibio.c
Target functions: DiB_trainFromFiles
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target DiB_trainFromFiles */
  char *new_var0 = ada_safe_get_char_p();
  UNKNOWN_TYPE unknown_1;
  char **new_var2 = af_get_double_char_p();
  int new_var3 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_4;
  UNKNOWN_TYPE unknown_5;
  UNKNOWN_TYPE unknown_6;
  UNKNOWN_TYPE unknown_7;
  int new_var8 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_9;
  DiB_trainFromFiles(new_var0, unknown_1, new_var2, new_var3, unknown_4, unknown_5, unknown_6, unknown_7, new_var8, unknown_9);

  af_safe_gb_cleanup();
}

fileio.c

Target file: /src/zstd/programs/fileio.c
Target functions: FIO_compressMultipleFilenames
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target FIO_compressMultipleFilenames */
  UNKNOWN_TYPE unknown_10;
  UNKNOWN_TYPE unknown_11;
  char **new_var12 = af_get_double_char_p();
  char *new_var13 = ada_safe_get_char_p();
  char *new_var14 = ada_safe_get_char_p();
  char *new_var15 = ada_safe_get_char_p();
  char *new_var16 = ada_safe_get_char_p();
  char *new_var17 = ada_safe_get_char_p();
  int new_var18 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_19;
  FIO_compressMultipleFilenames(unknown_10, unknown_11, new_var12, new_var13, new_var14, new_var15, new_var16, new_var17, new_var18, unknown_19);

  af_safe_gb_cleanup();
}

zstreamtest.c

Target file: /src/zstd/tests/zstreamtest.c
Target functions: basicUnitTests
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target basicUnitTests */
  UNKNOWN_TYPE unknown_20;
  UNKNOWN_TYPE unknown_21;
  int new_var22 = ada_safe_get_int();
  basicUnitTests(unknown_20, unknown_21, new_var22);

  af_safe_gb_cleanup();
}

paramgrill.c

Target file: /src/zstd/tests/paramgrill.c
Target functions: optimizeForSize
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target optimizeForSize */
  char **new_var23 = af_get_double_char_p();
  UNKNOWN_TYPE unknown_24;
  char *new_var25 = ada_safe_get_char_p();
  UNKNOWN_TYPE unknown_26;
  UNKNOWN_TYPE unknown_27;
  int new_var28 = ada_safe_get_int();
  int new_var29 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_30;
  optimizeForSize(new_var23, unknown_24, new_var25, unknown_26, unknown_27, new_var28, new_var29, unknown_30);

  af_safe_gb_cleanup();
}

example.c

Target file: /src/zstd/zlibWrapper/examples/example.c
Target functions: test_gzio
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target test_gzio */
  char *new_var31 = ada_safe_get_char_p();
  UNKNOWN_TYPE unknown_32;
  UNKNOWN_TYPE unknown_33;
  test_gzio(new_var31, unknown_32, unknown_33);

  af_safe_gb_cleanup();
}

decodecorpus.c

Target file: /src/zstd/tests/decodecorpus.c
Target functions: runTestMode
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target runTestMode */
  UNKNOWN_TYPE unknown_34;
  UNKNOWN_TYPE unknown_35;
  UNKNOWN_TYPE unknown_36;
  UNKNOWN_TYPE unknown_37;
  runTestMode(unknown_34, unknown_35, unknown_36, unknown_37);

  af_safe_gb_cleanup();
}

zstd_decompress.c

Target file: /src/zstd/doc/educational_decoder/zstd_decompress.c
Target functions: decode_frame
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target decode_frame */
  UNKNOWN_TYPE unknown_38;
  UNKNOWN_TYPE unknown_39;
  UNKNOWN_TYPE unknown_40;
  decode_frame(unknown_38, unknown_39, unknown_40);

  af_safe_gb_cleanup();
}

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/common/error_private.h ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/regression/test.c [] []
/src/zstd/lib/legacy/zstd_v02.c ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'dictionary_stream_round_trip'] ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/lib/compress/zstd_preSplit.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'dictionary_loader']
/src/zstd/lib/deprecated/zbuff_compress.c [] []
/src/zstd/tests/fuzz/fuzz_helpers.h [] []
/src/zstd/lib/decompress/zstd_decompress.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/common/pool.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_stream_round_trip']
/src/zstd/zlibWrapper/gzguts.h [] []
/src/zstd/tests/fuzz/stream_decompress.c ['stream_decompress'] ['stream_decompress']
/src/zstd/contrib/seekable_format/tests/seekable_tests.c [] []
/src/zstd/lib/compress/zstd_compress_superblock.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_stream_round_trip']
/src/zstd/contrib/seekable_format/zstdseek_compress.c ['seekable_roundtrip'] ['seekable_roundtrip']
/src/zstd/programs/fileio_common.h [] []
/src/zstd/lib/common/xxhash.h [] []
/src/zstd/examples/multiple_streaming_compression.c [] []
/src/zstd/tests/paramgrill.c [] []
/src/zstd/lib/decompress/zstd_ddict.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/zstd_frame_info.c ['zstd_frame_info'] ['zstd_frame_info']
/src/zstd/programs/benchzstd.h [] []
/src/zstd/tests/regression/result.c [] []
/src/zstd/lib/compress/zstd_compress.c ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/dictBuilder/cover.c ['dictionary_decompress', 'dictionary_stream_round_trip'] ['dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/test/OptionsTest.cpp [] []
/src/zstd/tests/fuzz/simple_round_trip.c ['simple_round_trip'] ['simple_round_trip']
/src/zstd/lib/compress/zstd_compress_sequences.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/dictionary_round_trip.c ['dictionary_round_trip'] ['dictionary_round_trip']
/src/zstd/programs/lorem.c [] []
/src/zstd/lib/common/debug.h [] []
/src/zstd/contrib/pzstd/ErrorHolder.h [] []
/src/zstd/tests/legacy.c [] []
/src/zstd/lib/legacy/zstd_v03.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['simple_decompress', 'stream_decompress', 'dictionary_decompress']
/src/zstd/contrib/pzstd/Logging.h [] []
/src/zstd/tests/fuzz/huf_round_trip.c ['huf_round_trip'] ['huf_round_trip']
/src/zstd/zlibWrapper/gzwrite.c [] []
/src/zstd/tests/fuzz/sequence_compression_api.c ['sequence_compression_api'] ['sequence_compression_api']
/src/zstd/lib/compress/zstd_opt.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'block_round_trip', 'dictionary_stream_round_trip']
/src/zstd/zlibWrapper/gzlib.c ['seekable_roundtrip'] []
/src/zstd/lib/compress/zstdmt_compress.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/common/cpu.h [] []
/src/zstd/programs/fileio_asyncio.c [] []
/src/zstd/lib/compress/huf_compress.c ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/legacy/zstd_v07.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['zstd_frame_info', 'simple_decompress', 'stream_decompress', 'dictionary_decompress']
/src/zstd/examples/simple_compression.c [] []
/src/zstd/contrib/gen_html/gen_html.cpp [] []
/src/zstd/lib/compress/hist.c ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/linux-kernel/zstd_deps.h [] []
/src/zstd/lib/decompress/zstd_decompress_internal.h [] []
/src/zstd/examples/dictionary_compression.c [] []
/src/zstd/contrib/diagnose_corruption/check_flipped_bits.c [] []
/src/zstd/programs/dibio.c [] []
/src/zstd/lib/common/bitstream.h ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp [] []
/src/zstd/tests/decodecorpus.c [] []
/src/zstd/tests/fullbench.c [] []
/src/zstd/programs/benchfn.c [] []
/src/zstd/lib/legacy/zstd_v06.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['zstd_frame_info', 'simple_decompress', 'stream_decompress', 'dictionary_decompress']
/src/zstd/programs/datagen.c [] []
/src/zstd/lib/compress/fse_compress.c ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/huf_decompress.c ['huf_decompress'] ['huf_decompress']
/src/zstd/programs/util.h [] []
/src/zstd/lib/compress/zstd_double_fast.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/ThreadPool.h [] []
/src/zstd/tests/poolTests.c [] []
/src/zstd/zlibWrapper/examples/zwrapbench.c [] []
/src/zstd/lib/common/huf.h [] []
/src/zstd/programs/zstdcli.c [] []
/src/zstd/contrib/pzstd/utils/Range.h [] []
/src/zstd/lib/dictBuilder/divsufsort.c [] []
/src/zstd/lib/deprecated/zbuff.h [] []
/src/zstd/lib/dictBuilder/zdict.c ['dictionary_decompress', 'dictionary_stream_round_trip'] ['dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/tests/regression/data.c ['seekable_roundtrip'] []
/src/zstd/tests/regression/config.c [] []
/src/zstd/programs/platform.h [] []
/src/zstd/tests/fuzz/stream_round_trip.c ['stream_round_trip'] ['stream_round_trip']
/src/zstd/contrib/linux-kernel/test/include/linux/xxhash.h [] []
/src/zstd/tests/seqgen.c [] []
/src/zstd/zlibWrapper/zstd_zlibwrapper.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/lib/deprecated/zbuff_common.c [] []
/src/zstd/tests/regression/method.c [] []
/src/zstd/contrib/linux-kernel/zstd_compress_module.c [] []
/src/zstd/contrib/linux-kernel/test/include/linux/math64.h [] []
/src/zstd/tests/fuzz/fuzz_third_party_seq_prod.h [] []
/src/zstd/tests/regression/result.h [] []
/src/zstd/tests/fuzzer.c [] []
/src/zstd/lib/dictBuilder/fastcover.c ['dictionary_decompress', 'dictionary_stream_round_trip'] ['dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/block_round_trip.c ['block_round_trip'] ['block_round_trip']
/src/zstd/tests/loremOut.c [] []
/src/zstd/tests/fuzz/decompress_cross_format.c ['decompress_cross_format'] ['decompress_cross_format']
/src/zstd/contrib/externalSequenceProducer/sequence_producer.c [] []
/src/zstd/contrib/recovery/recover_directory.c [] []
/src/zstd/tests/fuzz/decompress_dstSize_tooSmall.c ['decompress_dstSize_tooSmall'] ['decompress_dstSize_tooSmall']
/src/zstd/tests/external_matchfinder.c [] []
/src/zstd/examples/common.h [] []
/src/zstd/programs/util.c ['seekable_roundtrip'] []
/src/zstd/lib/common/error_private.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/contrib/linux-kernel/test/include/linux/unaligned.h [] []
/src/zstd/tests/fuzz/zstd_helpers.c ['generate_sequences', 'dictionary_decompress', 'dictionary_stream_round_trip'] ['generate_sequences', 'dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/contrib/match_finders/zstd_edist.c [] []
/src/zstd/programs/benchzstd.c [] []
/src/zstd/lib/deprecated/zbuff_decompress.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/zlibWrapper/examples/fitblk.c [] []
/src/zstd/lib/common/fse.h ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/linux-kernel/test/static_test.c [] []
/src/zstd/lib/common/threading.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/lib/legacy/zstd_v01.c ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'dictionary_stream_round_trip'] ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'dictionary_stream_round_trip']
/src/zstd/lib/zdict.h [] []
/src/zstd/contrib/linux-kernel/test/include/linux/module.h [] []
/src/zstd/zlibWrapper/examples/example.c [] []
/src/zstd/lib/decompress/zstd_decompress_block.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/test/RoundTrip.h [] []
/src/zstd/contrib/pzstd/utils/ResourcePool.h [] []
/src/zstd/lib/decompress/huf_decompress.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'huf_decompress', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'huf_decompress', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/seekable_format/examples/parallel_processing.c [] []
/src/zstd/contrib/seekable_format/zstdseek_decompress.c ['seekable_roundtrip'] ['seekable_roundtrip']
/src/zstd/lib/compress/zstd_compress_internal.h ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/Likely.h [] []
/src/zstd/tests/fuzz/dictionary_decompress.c ['dictionary_decompress'] ['dictionary_decompress']
/src/zstd/lib/common/entropy_common.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/ScopeGuard.h [] []
/src/zstd/tests/checkTag.c [] []
/src/zstd/lib/compress/zstd_lazy.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'block_round_trip', 'dictionary_stream_round_trip']
/src/zstd/zlibWrapper/gzread.c [] []
/src/zstd/lib/common/fse_decompress.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/dictionary_loader.c ['stream_round_trip', 'dictionary_loader'] ['dictionary_loader']
/src/zstd/contrib/seekable_format/examples/parallel_compression.c [] []
/src/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp [] []
/src/zstd/contrib/linux-kernel/test/include/linux/swab.h [] []
/src/zstd/programs/zstdcli_trace.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/tests/fuzz/raw_dictionary_round_trip.c ['raw_dictionary_round_trip'] ['raw_dictionary_round_trip']
/src/zstd/contrib/pzstd/Pzstd.cpp [] []
/src/zstd/contrib/pzstd/utils/Buffer.h [] []
/src/zstd/tests/fuzz/fse_read_ncount.c ['fse_read_ncount'] ['fse_read_ncount']
/src/zstd/lib/legacy/zstd_v04.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/Pzstd.h [] []
/src/zstd/contrib/pzstd/SkippableFrame.h [] []
/src/zstd/tests/fuzz/seekable_roundtrip.c ['seekable_roundtrip'] ['seekable_roundtrip']
/src/zstd/contrib/linux-kernel/mem.h [] []
/src/zstd/contrib/linux-kernel/test/test.c [] []
/src/zstd/tests/fuzz/simple_compress.c ['simple_compress'] ['simple_compress']
/src/zstd/tests/fuzz/dictionary_stream_round_trip.c ['dictionary_stream_round_trip'] ['dictionary_stream_round_trip']
/src/zstd/lib/common/zstd_common.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/zlibWrapper/examples/minigzip.c [] []
/src/zstd/examples/dictionary_decompression.c [] []
/src/zstd/contrib/pzstd/utils/test/BufferTest.cpp [] []
/src/zstd/tests/fuzz/fuzz_data_producer.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/doc/educational_decoder/harness.c [] []
/src/zstd/lib/compress/zstd_compress_literals.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/common/threading.h [] []
/src/zstd/contrib/pzstd/Options.cpp [] []
/src/zstd/contrib/linux-kernel/test/include/linux/kernel.h [] []
/src/zstd/contrib/pzstd/test/RoundTripTest.cpp [] []
/src/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c [] []
/src/zstd/lib/common/portability_macros.h [] []
/src/zstd/tests/fuzz/block_decompress.c ['block_decompress'] ['block_decompress']
/src/zstd/programs/timefn.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/tests/fuzz/fuzz_helpers.c ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/SkippableFrame.cpp [] []
/src/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c [] []
/src/zstd/lib/compress/zstd_fast.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/WorkQueue.h [] []
/src/zstd/lib/compress/zstd_ldm.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/common/compiler.h [] []
/src/zstd/contrib/pzstd/Options.h [] []
/src/zstd/lib/common/mem.h ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/contrib/largeNbDicts/largeNbDicts.c [] []
/src/zstd/lib/legacy/zstd_legacy.h ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['zstd_frame_info', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/pzstd/utils/FileSystem.h [] []
/src/zstd/tests/roundTripCrash.c ['dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'block_round_trip', 'sequence_compression_api'] []
/src/zstd/tests/fuzz/simple_decompress.c ['simple_decompress'] ['simple_decompress']
/src/zstd/lib/common/zstd_internal.h ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/lib/common/bits.h ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'huf_round_trip', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'huf_decompress', 'fse_read_ncount', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/tests/fuzz/generate_sequences.c ['generate_sequences'] ['generate_sequences']
/src/zstd/doc/educational_decoder/zstd_decompress.c ['simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/tests/zstreamtest.c [] []
/src/zstd/lib/common/allocations.h ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/contrib/linux-kernel/zstd_decompress_module.c [] []
/src/zstd/lib/compress/zstd_cwksp.h ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip']
/src/zstd/programs/fileio.c ['decompress_dstSize_tooSmall', 'generate_sequences', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_compress', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] []
/src/zstd/lib/legacy/zstd_v05.c ['zstd_frame_info', 'block_decompress', 'simple_decompress', 'stream_decompress', 'decompress_cross_format', 'decompress_dstSize_tooSmall', 'seekable_roundtrip', 'dictionary_round_trip', 'raw_dictionary_round_trip', 'simple_round_trip', 'stream_round_trip', 'dictionary_loader', 'block_round_trip', 'dictionary_decompress', 'sequence_compression_api', 'dictionary_stream_round_trip'] ['zstd_frame_info', 'simple_decompress', 'stream_decompress', 'dictionary_decompress']
/src/zstd/lib/zstd.h [] []

Directories in report

Directory
/src/zstd/lib/legacy/
/src/zstd/lib/dictBuilder/
/src/zstd/tests/fuzz/
/src/zstd/zlibWrapper/examples/
/src/zstd/lib/
/src/zstd/contrib/pzstd/utils/
/src/zstd/lib/compress/
/src/zstd/contrib/largeNbDicts/
/src/zstd/tests/fuzz/seq_prod_fuzz_example/
/src/zstd/tests/regression/
/src/zstd/contrib/seekable_format/
/src/zstd/contrib/linux-kernel/test/include/linux/
/src/zstd/examples/
/src/zstd/contrib/linux-kernel/
/src/zstd/lib/common/
/src/zstd/contrib/pzstd/
/src/zstd/tests/
/src/zstd/programs/
/src/zstd/contrib/diagnose_corruption/
/src/zstd/contrib/linux-kernel/test/
/src/zstd/lib/decompress/
/src/zstd/contrib/gen_html/
/src/zstd/contrib/match_finders/
/src/zstd/contrib/externalSequenceProducer/
/src/zstd/contrib/seekable_format/examples/
/src/zstd/contrib/seekable_format/tests/
/src/zstd/contrib/pzstd/test/
/src/zstd/contrib/pzstd/utils/test/
/src/zstd/contrib/recovery/
/src/zstd/zlibWrapper/
/src/zstd/lib/deprecated/
/src/zstd/doc/educational_decoder/

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
zstd_frame_info fuzzerLogFile-zstd_frame_info.data fuzzerLogFile-zstd_frame_info.data.yaml zstd_frame_info.covreport
block_decompress fuzzerLogFile-block_decompress.data fuzzerLogFile-block_decompress.data.yaml block_decompress.covreport
simple_decompress fuzzerLogFile-simple_decompress.data fuzzerLogFile-simple_decompress.data.yaml simple_decompress.covreport
stream_decompress fuzzerLogFile-stream_decompress.data fuzzerLogFile-stream_decompress.data.yaml stream_decompress.covreport
decompress_cross_format fuzzerLogFile-decompress_cross_format.data fuzzerLogFile-decompress_cross_format.data.yaml decompress_cross_format.covreport
huf_round_trip fuzzerLogFile-huf_round_trip.data fuzzerLogFile-huf_round_trip.data.yaml huf_round_trip.covreport
decompress_dstSize_tooSmall fuzzerLogFile-decompress_dstSize_tooSmall.data fuzzerLogFile-decompress_dstSize_tooSmall.data.yaml decompress_dstSize_tooSmall.covreport
generate_sequences fuzzerLogFile-generate_sequences.data fuzzerLogFile-generate_sequences.data.yaml generate_sequences.covreport
seekable_roundtrip fuzzerLogFile-seekable_roundtrip.data fuzzerLogFile-seekable_roundtrip.data.yaml seekable_roundtrip.covreport
dictionary_round_trip fuzzerLogFile-dictionary_round_trip.data fuzzerLogFile-dictionary_round_trip.data.yaml dictionary_round_trip.covreport
raw_dictionary_round_trip fuzzerLogFile-raw_dictionary_round_trip.data fuzzerLogFile-raw_dictionary_round_trip.data.yaml raw_dictionary_round_trip.covreport
huf_decompress fuzzerLogFile-huf_decompress.data fuzzerLogFile-huf_decompress.data.yaml huf_decompress.covreport
fse_read_ncount fuzzerLogFile-fse_read_ncount.data fuzzerLogFile-fse_read_ncount.data.yaml fse_read_ncount.covreport
simple_compress fuzzerLogFile-simple_compress.data fuzzerLogFile-simple_compress.data.yaml simple_compress.covreport
simple_round_trip fuzzerLogFile-simple_round_trip.data fuzzerLogFile-simple_round_trip.data.yaml simple_round_trip.covreport
stream_round_trip fuzzerLogFile-stream_round_trip.data fuzzerLogFile-stream_round_trip.data.yaml stream_round_trip.covreport
dictionary_loader fuzzerLogFile-dictionary_loader.data fuzzerLogFile-dictionary_loader.data.yaml dictionary_loader.covreport
block_round_trip fuzzerLogFile-block_round_trip.data fuzzerLogFile-block_round_trip.data.yaml block_round_trip.covreport
dictionary_decompress fuzzerLogFile-dictionary_decompress.data fuzzerLogFile-dictionary_decompress.data.yaml dictionary_decompress.covreport
sequence_compression_api fuzzerLogFile-sequence_compression_api.data fuzzerLogFile-sequence_compression_api.data.yaml sequence_compression_api.covreport
dictionary_stream_round_trip fuzzerLogFile-dictionary_stream_round_trip.data fuzzerLogFile-dictionary_stream_round_trip.data.yaml dictionary_stream_round_trip.covreport