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

Project overview: zstd

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
57.9%
1010 / 1729
Cyclomatic complexity statically reachable by fuzzers
32.0%
7192 / 22786
Runtime code coverage of functions
70.0%
1204 / 1729

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

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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
block_decompress tests/fuzz/block_decompress.c 58 1672 17 28 524 234 block_decompress.c
raw_dictionary_round_trip tests/fuzz/raw_dictionary_round_trip.c 587 1146 24 66 17299 4330 raw_dictionary_round_trip.c
dictionary_loader tests/fuzz/dictionary_loader.c 574 1160 24 64 17006 4234 dictionary_loader.c
generate_sequences tests/fuzz/generate_sequences.c 563 1170 24 66 16401 4043 generate_sequences.c
simple_decompress tests/fuzz/simple_decompress.c 94 1636 19 35 1137 434 simple_decompress.c
block_round_trip tests/fuzz/block_round_trip.c 456 1277 20 59 12890 3204 block_round_trip.c
dictionary_decompress tests/fuzz/dictionary_decompress.c 767 963 23 72 19132 5366 dictionary_decompress.c
decompress_dstSize_tooSmall tests/fuzz/decompress_dstSize_tooSmall.c 454 1276 20 64 12996 3219 decompress_dstSize_tooSmall.c
zstd_frame_info tests/fuzz/zstd_frame_info.c 56 1674 7 15 680 250 zstd_frame_info.c
seekable_roundtrip tests/fuzz/seekable_roundtrip.c 905 886 23 66 21902 6013 seekable_roundtrip.c
stream_round_trip tests/fuzz/stream_round_trip.c 866 870 22 66 21696 5949 stream_round_trip.c
decompress_cross_format tests/fuzz/decompress_cross_format.c 397 1333 19 36 6465 2322 decompress_cross_format.c
dictionary_round_trip tests/fuzz/dictionary_round_trip.c 624 1109 24 73 18078 4566 dictionary_round_trip.c
huf_round_trip tests/fuzz/huf_round_trip.c 158 1575 12 27 7805 1930 huf_round_trip.c
sequence_compression_api tests/fuzz/sequence_compression_api.c 434 1303 19 62 8724 2536 sequence_compression_api.c
stream_decompress tests/fuzz/stream_decompress.c 406 1326 19 36 6463 2345 stream_decompress.c
huf_decompress tests/fuzz/huf_decompress.c 84 1646 13 18 2012 719 huf_decompress.c
fse_read_ncount tests/fuzz/fse_read_ncount.c 24 1708 6 10 310 144 fse_read_ncount.c
simple_compress tests/fuzz/simple_compress.c 432 1300 20 40 12647 3059 simple_compress.c
dictionary_stream_round_trip tests/fuzz/dictionary_stream_round_trip.c 619 1116 23 73 18029 4556 dictionary_stream_round_trip.c
simple_round_trip tests/fuzz/simple_round_trip.c 596 1138 24 66 16753 4192 simple_round_trip.c

Fuzzer details

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 289 48.9%
gold [1:9] 3 0.50%
yellow [10:29] 1 0.16%
greenyellow [30:49] 1 0.16%
lawngreen 50+ 297 50.2%
All colors 591 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00191 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 00508 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00193 /src/zstd/lib/common/fse_decompress.c:307
22 22 1 :

['ZSTD_buildFSETable_body_default']

22 22 ZSTD_buildFSETable call site: 00359 /src/zstd/lib/decompress/zstd_decompress_block.c:632
21 21 2 :

['FUZZ_dataProducer_uint32Range', 'FUZZ_dataProducer_int32Range']

21 21 FUZZ_malloc_rand call site: 00005 /src/zstd/tests/fuzz/fuzz_helpers.c:28
0 0 None 0 0 ZSTD_customFree call site: 00574 /src/zstd/lib/decompress/../common/allocations.h:48
0 0 None 0 0 ZSTD_customMalloc call site: 00018 /src/zstd/lib/decompress/../common/allocations.h:28
0 0 None 0 0 HUF_DEltX1_set4 call site: 00283 /src/zstd/lib/decompress/huf_decompress.c:337
0 0 None 0 0 HUF_buildDEltX2U32 call site: 00310 /src/zstd/lib/decompress/huf_decompress.c:968
0 0 None 0 0 HUF_decompress4X2_usingDTable_internal call site: 00134 /src/zstd/lib/decompress/huf_decompress.c:1726
0 0 None 0 0 HUF_decompress4X2_usingDTable_internal_fast call site: 00169 /src/zstd/lib/decompress/huf_decompress.c:1710
0 0 None 0 0 HUF_DecompressFastArgs_init call site: 00141 /src/zstd/lib/decompress/huf_decompress.c:203

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 2016 49.4%
gold [1:9] 1 0.02%
yellow [10:29] 2 0.04%
greenyellow [30:49] 3 0.07%
lawngreen 50+ 2055 50.4%
All colors 4077 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
551 551 2 :

['ZSTD_loadZstdDictionary', 'MEM_readLE32.984']

551 883 ZSTD_compress_insertDictionary call site: 00433 /src/zstd/lib/compress/zstd_compress.c:5166
484 484 4 :

['ZSTD_compressBlock_fast_noDict_7_0', 'ZSTD_compressBlock_fast_noDict_6_0', 'ZSTD_compressBlock_fast_noDict_5_0', 'ZSTD_compressBlock_fast_noDict_4_0']

484 484 ZSTD_compressBlock_fast call site: 00000 /src/zstd/lib/compress/zstd_fast.c:451
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01777 /src/zstd/lib/compress/huf_compress.c:1143
442 442 3 :

['MEM_readLE32.3341', 'ERR_isError.3342', 'ZSTD_loadDEntropy']

442 442 ZSTD_loadEntropy_intoDDict call site: 02182 /src/zstd/lib/decompress/zstd_ddict.c:95
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 03844 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00682 /src/zstd/lib/common/entropy_common.c:334
310 310 2 :

['ZSTDMT_resize', 'ERR_isError.2987']

320 1379 ZSTDMT_initCStream_internal call site: 00956 /src/zstd/lib/compress/zstdmt_compress.c:1247
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00684 /src/zstd/lib/common/fse_decompress.c:307
133 133 1 :

['ZSTDMT_updateCParams_whileCompressing']

133 3405 ZSTD_compressStream2 call site: 01164 /src/zstd/lib/compress/zstd_compress.c:6434
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 03621 /src/zstd/lib/decompress/zstd_decompress.c:707
45 45 1 :

['ZSTD_isUpdateAuthorized']

45 164 ZSTD_CCtx_setParameter call site: 00101 /src/zstd/lib/compress/zstd_compress.c:719
36 36 1 :

['ZSTDMT_writeLastEmptyBlock']

36 36 ZSTDMT_createCompressionJob call site: 01213 /src/zstd/lib/compress/zstdmt_compress.c:1419

Runtime coverage analysis

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

Files reached

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

Fuzzer: dictionary_loader

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2696 67.8%
gold [1:9] 6 0.15%
yellow [10:29] 5 0.12%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1268 31.8%
All colors 3976 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTDMT_compressStream_generic', 'ZSTD_CCtx_reset', 'ZSTDMT_updateCParams_whileCompressing', 'ZSTD_CCtx_trace']

3368 3405 ZSTD_compressStream2 call site: 01054 /src/zstd/lib/compress/zstd_compress.c:6432
1469 1469 3 :

['ZSTD_trace_compress_begin', 'ZSTDMT_initCStream_internal', 'ZSTDMT_createCCtx_advanced']

1469 1469 ZSTD_CCtx_init_compressStream2 call site: 00678 /src/zstd/lib/compress/zstd_compress.c:6339
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01667 /src/zstd/lib/compress/huf_compress.c:1143
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 03744 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 01347 /src/zstd/lib/compress/zstd_compress.c:3284
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 03873 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 00801 /src/zstd/lib/compress/zstdmt_compress.c:1030
136 144 2 :

['ZSTD_overrideCParams', 'ZSTD_dedicatedDictSearch_getCParams']

136 1066 ZSTD_createCDict_advanced2 call site: 00068 /src/zstd/lib/compress/zstd_compress.c:5623
120 120 5 :

['ZSTD_crossEntropyCost', 'ZSTD_fseBitCost', 'ZSTD_entropyCost', 'ZSTD_NCountCost', 'ERR_isError.1234']

120 120 ZSTD_selectEncodingType call site: 01560 /src/zstd/lib/compress/zstd_compress_sequences.c:179
80 82 5 :

['ZSTD_copySequencesToSeqStoreExplicitBlockDelim', 'ERR_isError.969', 'ZSTD_fastSequenceLengthSum', 'ZSTD_postProcessSequenceProducerResult', 'ZSTD_sequenceBound']

80 153 ZSTD_buildSeqStore call site: 01353 /src/zstd/lib/compress/zstd_compress.c:3309
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01748 /src/zstd/lib/compress/zstd_compress_sequences.c:428
61 71 2 :

['ZSTD_ldm_fillHashTable', 'ZSTD_window_update']

369 497 ZSTD_loadDictionaryContent call site: 00258 /src/zstd/lib/compress/zstd_compress.c:4908

Runtime coverage analysis

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

Files reached

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

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 4118 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 4118 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
4117 0 EP call site: 00000 ZSTD_generateSequences

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 810 39.0%
gold [1:9] 4 0.19%
yellow [10:29] 23 1.10%
greenyellow [30:49] 5 0.24%
lawngreen 50+ 1232 59.4%
All colors 2074 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 01423 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 01943 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 01425 /src/zstd/lib/common/fse_decompress.c:307
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 01565 /src/zstd/lib/decompress/zstd_decompress.c:707
22 22 1 :

['ZSTD_buildFSETable_body_default']

22 22 ZSTD_buildFSETable call site: 01538 /src/zstd/lib/decompress/zstd_decompress_block.c:632
8 8 2 :

['ZSTD_DDict_dictSize', 'ZSTD_DDict_dictContent']

32 2185 ZSTD_decompressMultiFrame call site: 00033 /src/zstd/lib/decompress/zstd_decompress.c:1080
4 4 1 :

['XXH_readLE32']

4 4 XXH_readLE32_align call site: 01591 /src/zstd/lib/common/xxhash.h:2765
2 2 2 :

['ZSTD_decompress_insertDictionary', 'ERR_isError.3611']

2 2 ZSTD_decompressBegin_usingDict call site: 01412 /src/zstd/lib/decompress/zstd_decompress.c:1589
2 2 1 :

['ZSTD_errorFrameSizeInfo']

2 2 ZSTD_findFrameSizeInfo call site: 02048 /src/zstd/lib/decompress/zstd_decompress.c:785
0 14 3 :

['ZSTDv05_copy4', 'ZSTDv05_wildcopy', 'ZSTDv05_copy8']

0 14 ZSTDv05_execSequence call site: 00791 /src/zstd/lib/legacy/zstd_v05.c:3204
0 14 3 :

['ZSTDv06_copy4', 'ZSTDv06_wildcopy', 'ZSTDv06_copy8']

0 14 ZSTDv06_execSequence call site: 00993 /src/zstd/lib/legacy/zstd_v06.c:3336
0 14 3 :

['ZSTDv07_copy4', 'ZSTDv07_wildcopy', 'ZSTDv07_copy8']

0 14 ZSTDv07_execSequence call site: 01320 /src/zstd/lib/legacy/zstd_v07.c:3561

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 1094 53.0%
gold [1:9] 8 0.38%
yellow [10:29] 2 0.09%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 959 46.4%
All colors 2063 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_compress_frameChunk']

2232 2232 ZSTD_compressContinue_internal call site: 00793 /src/zstd/lib/compress/zstd_compress.c:4788
1215 1217 4 :

['ZSTD_reset_compressedBlockState', 'MEM_readLE32.984', 'ZSTD_loadZstdDictionary', 'ZSTD_loadDictionaryContent']

1215 1217 ZSTD_compress_insertDictionary call site: 00328 /src/zstd/lib/compress/zstd_compress.c:5158
484 484 4 :

['ZSTD_compressBlock_fast_noDict_7_0', 'ZSTD_compressBlock_fast_noDict_6_0', 'ZSTD_compressBlock_fast_noDict_5_0', 'ZSTD_compressBlock_fast_noDict_4_0']

484 484 ZSTD_compressBlock_fast call site: 00000 /src/zstd/lib/compress/zstd_fast.c:451
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01254 /src/zstd/lib/compress/huf_compress.c:1143
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 00902 /src/zstd/lib/compress/zstd_compress.c:3284
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 00108 /src/zstd/lib/compress/zstd_compress.c:5206
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00618 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 01911 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00620 /src/zstd/lib/common/fse_decompress.c:307
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 01992 /src/zstd/lib/compress/zstdmt_compress.c:1030
89 89 1 :

['ZSTD_DUBT_findBetterDictMatch']

89 89 ZSTD_DUBT_findBestMatch call site: 00000 /src/zstd/lib/compress/zstd_lazy.c:373
80 82 5 :

['ZSTD_copySequencesToSeqStoreExplicitBlockDelim', 'ERR_isError.969', 'ZSTD_fastSequenceLengthSum', 'ZSTD_postProcessSequenceProducerResult', 'ZSTD_sequenceBound']

80 153 ZSTD_buildSeqStore call site: 00936 /src/zstd/lib/compress/zstd_compress.c:3309

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/block_round_trip.c 2
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 2
lib/compress/zstd_compress.c 115
lib/compress/../common/allocations.h 2
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 34
lib/compress/../common/error_private.h 1
lib/decompress/zstd_decompress.c 9
lib/decompress/../common/allocations.h 2
lib/decompress/../common/zstd_internal.h 3
lib/decompress/../common/cpu.h 3
lib/compress/zstd_compress_internal.h 40
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/zstd_ldm.c 20
lib/compress/../common/compiler.h 1
lib/common/xxhash.h 15
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 3
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/common/zstd_common.c 2
lib/common/error_private.c 1
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/decompress/zstd_decompress_block.c 33
lib/decompress/../common/mem.h 14
lib/decompress/zstd_decompress_internal.h 1
lib/decompress/huf_decompress.c 31
lib/decompress/../common/bitstream.h 5
lib/decompress/../common/bits.h 3
lib/decompress/../common/error_private.h 1
lib/decompress/../common/compiler.h 3
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1
lib/decompress/zstd_ddict.c 1
lib/decompress/../legacy/zstd_legacy.h 1
lib/legacy/zstd_v04.c 3
lib/legacy/zstd_v05.c 2
lib/legacy/zstd_v06.c 2
lib/legacy/zstd_v07.c 2

Fuzzer: dictionary_decompress

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1543 42.0%
gold [1:9] 8 0.21%
yellow [10:29] 18 0.49%
greenyellow [30:49] 7 0.19%
lawngreen 50+ 2092 57.0%
All colors 3668 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_compress_frameChunk']

2232 2232 ZSTD_compressContinue_internal call site: 00919 /src/zstd/lib/compress/zstd_compress.c:4788
551 551 2 :

['ZSTD_loadZstdDictionary', 'MEM_readLE32.984']

551 883 ZSTD_compress_insertDictionary call site: 00321 /src/zstd/lib/compress/zstd_compress.c:5166
484 484 4 :

['ZSTD_compressBlock_fast_noDict_7_0', 'ZSTD_compressBlock_fast_noDict_6_0', 'ZSTD_compressBlock_fast_noDict_5_0', 'ZSTD_compressBlock_fast_noDict_4_0']

484 484 ZSTD_compressBlock_fast call site: 00000 /src/zstd/lib/compress/zstd_fast.c:451
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01379 /src/zstd/lib/compress/huf_compress.c:1143
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 03446 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 01027 /src/zstd/lib/compress/zstd_compress.c:3284
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 03565 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
309 309 1 :

['ZSTD_resetCCtx_byCopyingCDict']

309 309 ZSTD_resetCCtx_usingCDict call site: 00767 /src/zstd/lib/compress/zstd_compress.c:2505
210 214 2 :

['ZSTDv05_isError', 'ZSTDv05_loadEntropy']

210 216 ZSTDv05_decompress_insertDictionary call site: 02421 /src/zstd/lib/legacy/zstd_v05.c:3666
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 01701 /src/zstd/lib/compress/zstdmt_compress.c:1030
186 186 2 :

['ERR_isError.5890', 'ZSTDv06_loadEntropy']

186 188 ZSTDv06_decompress_insertDictionary call site: 02625 /src/zstd/lib/legacy/zstd_v06.c:3806
136 144 2 :

['ZSTD_overrideCParams', 'ZSTD_dedicatedDictSearch_getCParams']

136 1066 ZSTD_createCDict_advanced2 call site: 00182 /src/zstd/lib/compress/zstd_compress.c:5623

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 2431 70.4%
gold [1:9] 7 0.20%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1011 29.3%
All colors 3449 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_reset_compressedBlockState', 'MEM_readLE32.984', 'ZSTD_loadZstdDictionary', 'ZSTD_loadDictionaryContent']

1215 1217 ZSTD_compress_insertDictionary call site: 00322 /src/zstd/lib/compress/zstd_compress.c:5158
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01236 /src/zstd/lib/compress/huf_compress.c:1143
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 00884 /src/zstd/lib/compress/zstd_compress.c:3284
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 00102 /src/zstd/lib/compress/zstd_compress.c:5206
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00612 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 03293 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00614 /src/zstd/lib/common/fse_decompress.c:307
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 03381 /src/zstd/lib/compress/zstdmt_compress.c:1030
120 120 5 :

['ZSTD_crossEntropyCost', 'ZSTD_fseBitCost', 'ZSTD_entropyCost', 'ZSTD_NCountCost', 'ERR_isError.1234']

120 120 ZSTD_selectEncodingType call site: 01127 /src/zstd/lib/compress/zstd_compress_sequences.c:179
80 82 5 :

['ZSTD_copySequencesToSeqStoreExplicitBlockDelim', 'ERR_isError.969', 'ZSTD_fastSequenceLengthSum', 'ZSTD_postProcessSequenceProducerResult', 'ZSTD_sequenceBound']

80 153 ZSTD_buildSeqStore call site: 00918 /src/zstd/lib/compress/zstd_compress.c:3309
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01317 /src/zstd/lib/compress/zstd_compress_sequences.c:428
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 02950 /src/zstd/lib/decompress/zstd_decompress.c:707

Runtime coverage analysis

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

Files reached

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

Fuzzer: zstd_frame_info

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 52 25.0%
gold [1:9] 3 1.44%
yellow [10:29] 6 2.88%
greenyellow [30:49] 2 0.96%
lawngreen 50+ 145 69.7%
All colors 208 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 2 ZSTDv01_findFrameSizeInfoLegacy call site: 00094 /src/zstd/lib/legacy/zstd_v01.c:1994
0 0 1 :

['MEM_swap32.4384']

0 0 MEM_writeLE32 call site: 00058 /src/zstd/lib/dictBuilder/../common/mem.h:336
0 0 None 0 0 ZSTD_getDecompressedSize_legacy call site: 00016 /src/zstd/lib/decompress/../legacy/zstd_legacy.h:110
0 0 None 0 0 ZSTDv02_findFrameSizeInfoLegacy call site: 00103 /src/zstd/lib/legacy/zstd_v02.c:3295
0 0 None 0 0 ZSTDv03_findFrameSizeInfoLegacy call site: 00114 /src/zstd/lib/legacy/zstd_v03.c:2934
0 0 None 0 0 ZSTDv04_findFrameSizeInfoLegacy call site: 00125 /src/zstd/lib/legacy/zstd_v04.c:3105
0 0 None 0 0 ZSTDv05_findFrameSizeInfoLegacy call site: 00136 /src/zstd/lib/legacy/zstd_v05.c:3496
0 0 None 0 0 ZSTDv06_findFrameSizeInfoLegacy call site: 00147 /src/zstd/lib/legacy/zstd_v06.c:3630
0 0 None 0 0 ZSTDv07_getFrameParams call site: 00032 /src/zstd/lib/legacy/zstd_v07.c:3101
0 0 None 0 0 ZSTDv07_findFrameSizeInfoLegacy call site: 00157 /src/zstd/lib/legacy/zstd_v07.c:3874
0 0 None 0 0 ZSTDv07_findFrameSizeInfoLegacy call site: 00159 /src/zstd/lib/legacy/zstd_v07.c:3878
0 0 1 :

['MEM_swap32.6228']

0 0 MEM_readLE32 call site: 00007 /src/zstd/lib/legacy/zstd_v07.c:351

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 2917 67.6%
gold [1:9] 0 0.0%
yellow [10:29] 3 0.06%
greenyellow [30:49] 1 0.02%
lawngreen 50+ 1391 32.2%
All colors 4312 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTDMT_compressStream_generic', 'ZSTD_CCtx_reset', 'ZSTDMT_updateCParams_whileCompressing', 'ZSTD_CCtx_trace']

3368 3405 ZSTD_compressStream2 call site: 01080 /src/zstd/lib/compress/zstd_compress.c:6432
1469 1469 3 :

['ZSTD_trace_compress_begin', 'ZSTDMT_initCStream_internal', 'ZSTDMT_createCCtx_advanced']

1469 1469 ZSTD_CCtx_init_compressStream2 call site: 00804 /src/zstd/lib/compress/zstd_compress.c:6339
1215 1217 4 :

['ZSTD_reset_compressedBlockState', 'MEM_readLE32.984', 'ZSTD_loadZstdDictionary', 'ZSTD_loadDictionaryContent']

1215 1217 ZSTD_compress_insertDictionary call site: 00365 /src/zstd/lib/compress/zstd_compress.c:5158
835 835 1 :

['ZSTD_createCDict_advanced2']

835 835 ZSTD_initLocalDict call site: 00191 /src/zstd/lib/compress/zstd_compress.c:1263
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01692 /src/zstd/lib/compress/huf_compress.c:1143
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 01372 /src/zstd/lib/compress/zstd_compress.c:3284
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 00955 /src/zstd/lib/compress/zstd_compress.c:5206
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00655 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 04139 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00657 /src/zstd/lib/common/fse_decompress.c:307
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 00054 /src/zstd/lib/compress/zstdmt_compress.c:1030
89 89 1 :

['ZSTD_DUBT_findBetterDictMatch']

89 89 ZSTD_DUBT_findBestMatch call site: 00000 /src/zstd/lib/compress/zstd_lazy.c:373

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 2276 52.1%
gold [1:9] 1 0.02%
yellow [10:29] 6 0.13%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2078 47.6%
All colors 4361 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_createCDict_advanced']

839 1031 ZSTDMT_initCStream_internal call site: 00983 /src/zstd/lib/compress/zstdmt_compress.c:1263
835 835 1 :

['ZSTD_createCDict_advanced2']

835 835 ZSTD_initLocalDict call site: 00277 /src/zstd/lib/compress/zstd_compress.c:1263
551 551 2 :

['ZSTD_loadZstdDictionary', 'MEM_readLE32.984']

551 883 ZSTD_compress_insertDictionary call site: 00428 /src/zstd/lib/compress/zstd_compress.c:5166
484 484 4 :

['ZSTD_compressBlock_fast_noDict_7_0', 'ZSTD_compressBlock_fast_noDict_6_0', 'ZSTD_compressBlock_fast_noDict_5_0', 'ZSTD_compressBlock_fast_noDict_4_0']

484 484 ZSTD_compressBlock_fast call site: 00000 /src/zstd/lib/compress/zstd_fast.c:451
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01772 /src/zstd/lib/compress/huf_compress.c:1143
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 01034 /src/zstd/lib/compress/zstd_compress.c:5206
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00677 /src/zstd/lib/common/entropy_common.c:334
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00679 /src/zstd/lib/common/fse_decompress.c:307
133 133 1 :

['ZSTDMT_updateCParams_whileCompressing']

133 3405 ZSTD_compressStream2 call site: 01159 /src/zstd/lib/compress/zstd_compress.c:6434
89 89 1 :

['ZSTD_DUBT_findBetterDictMatch']

89 89 ZSTD_DUBT_findBestMatch call site: 00000 /src/zstd/lib/compress/zstd_lazy.c:373
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01853 /src/zstd/lib/compress/zstd_compress_sequences.c:428
61 71 2 :

['ZSTD_ldm_fillHashTable', 'ZSTD_window_update']

119 497 ZSTD_loadDictionaryContent call site: 00446 /src/zstd/lib/compress/zstd_compress.c:4908

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 1825 76.8%
gold [1:9] 3 0.12%
yellow [10:29] 5 0.21%
greenyellow [30:49] 1 0.04%
lawngreen 50+ 540 22.7%
All colors 2374 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 01472 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 01988 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 01474 /src/zstd/lib/common/fse_decompress.c:307
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 01614 /src/zstd/lib/decompress/zstd_decompress.c:707
22 22 1 :

['ZSTD_buildFSETable_body_default']

22 22 ZSTD_buildFSETable call site: 01587 /src/zstd/lib/decompress/zstd_decompress_block.c:632
8 8 2 :

['ZSTD_DDict_dictSize', 'ZSTD_DDict_dictContent']

1773 2185 ZSTD_decompressMultiFrame call site: 00206 /src/zstd/lib/decompress/zstd_decompress.c:1080
8 8 2 :

['ZSTD_DDict_dictSize', 'ZSTD_DDict_dictContent']

13 23 ZSTD_decompressBegin_usingDDict call site: 01447 /src/zstd/lib/decompress/zstd_decompress.c:1603
5 5 1 :

['ZSTD_copyDDictParameters']

5 5 ZSTD_decompressBegin_usingDDict call site: 01454 /src/zstd/lib/decompress/zstd_decompress.c:1612
4 4 1 :

['XXH_readLE32']

4 4 XXH_readLE32_align call site: 01640 /src/zstd/lib/common/xxhash.h:2765
2 2 2 :

['ZSTD_decompress_insertDictionary', 'ERR_isError.3611']

2 2 ZSTD_decompressBegin_usingDict call site: 01461 /src/zstd/lib/decompress/zstd_decompress.c:1589
0 4 1 :

['XXH_readLE64']

0 4 XXH_readLE64_align call site: 01622 /src/zstd/lib/common/xxhash.h:3295
0 0 None 3687 6501 ZSTD_decompressStream call site: 02222 /src/zstd/lib/decompress/zstd_decompress.c:2136

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 1943 45.1%
gold [1:9] 7 0.16%
yellow [10:29] 0 0.0%
greenyellow [30:49] 5 0.11%
lawngreen 50+ 2352 54.6%
All colors 4307 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01387 /src/zstd/lib/compress/huf_compress.c:1143
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 04074 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 04203 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
310 310 2 :

['ZSTDMT_resize', 'ERR_isError.2987']

320 1379 ZSTDMT_initCStream_internal call site: 02063 /src/zstd/lib/compress/zstdmt_compress.c:1247
133 133 1 :

['ZSTDMT_updateCParams_whileCompressing']

133 3405 ZSTD_compressStream2 call site: 02140 /src/zstd/lib/compress/zstd_compress.c:6434
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 03851 /src/zstd/lib/decompress/zstd_decompress.c:707
45 45 1 :

['ZSTD_isUpdateAuthorized']

45 164 ZSTD_CCtx_setParameter call site: 01838 /src/zstd/lib/compress/zstd_compress.c:719
36 36 1 :

['ZSTDMT_writeLastEmptyBlock']

36 36 ZSTDMT_createCompressionJob call site: 02189 /src/zstd/lib/compress/zstdmt_compress.c:1419
31 31 2 :

['ZSTD_XXH64_digest', 'MEM_readLE32.3617']

31 44 ZSTD_decompressFrame call site: 04267 /src/zstd/lib/decompress/zstd_decompress.c:1047
31 31 2 :

['MEM_writeLE32.1047', 'ZSTD_XXH64_digest']

31 31 ZSTD_writeEpilogue call site: 01790 /src/zstd/lib/compress/zstd_compress.c:5323
22 24 2 :

['ZSTD_getSeqStore', 'ZSTD_copyBlockSequences']

22 26 ZSTD_compressBlock_internal call site: 01633 /src/zstd/lib/compress/zstd_compress.c:4365
22 22 1 :

['ZSTD_copyBlockSequences']

22 24 ZSTD_compressSeqStore_singleBlock call site: 01598 /src/zstd/lib/compress/zstd_compress.c:4102

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 129 21.5%
gold [1:9] 5 0.83%
yellow [10:29] 2 0.33%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 463 77.2%
All colors 599 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['HIST_count_parallel_wksp']

0 14 HIST_count_wksp call site: 00026 /src/zstd/lib/compress/hist.c:170
0 0 None 0 9 FUZZ_dataProducer_int32Range call site: 00007 /src/zstd/tests/fuzz/fuzz_data_producer.c:60
0 0 None 0 4 FSE_buildDTable_internal call site: 00259 /src/zstd/lib/common/fse_decompress.c:81
0 0 None 0 0 FSE_buildDTable_internal call site: 00259 /src/zstd/lib/common/fse_decompress.c:92
0 0 1 :

['MEM_writeLE32.1215']

0 0 MEM_writeLEST call site: 00175 /src/zstd/lib/compress/../common/mem.h:368
0 0 1 :

['MEM_swap64.1209']

0 0 MEM_writeLE64 call site: 00182 /src/zstd/lib/compress/../common/mem.h:352
0 0 None 0 0 FSE_buildCTable_wksp call site: 00145 /src/zstd/lib/compress/fse_compress.c:104
0 0 None 0 0 FSE_buildCTable_wksp call site: 00147 /src/zstd/lib/compress/fse_compress.c:116
0 0 None 0 0 FSE_writeNCount_generic call site: 00138 /src/zstd/lib/compress/fse_compress.c:314
0 0 None 0 0 FSE_normalizeM2 call site: 00133 /src/zstd/lib/compress/fse_compress.c:412
0 0 None 0 0 FSE_normalizeM2 call site: 00133 /src/zstd/lib/compress/fse_compress.c:415
0 0 None 0 0 FSE_normalizeM2 call site: 00133 /src/zstd/lib/compress/fse_compress.c:428

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 2228 67.4%
gold [1:9] 74 2.24%
yellow [10:29] 4 0.12%
greenyellow [30:49] 1 0.03%
lawngreen 50+ 995 30.1%
All colors 3302 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1469 1469 3 :

['ZSTD_trace_compress_begin', 'ZSTDMT_initCStream_internal', 'ZSTDMT_createCCtx_advanced']

1469 1469 ZSTD_CCtx_init_compressStream2 call site: 00871 /src/zstd/lib/compress/zstd_compress.c:6339
551 551 2 :

['ZSTD_loadZstdDictionary', 'MEM_readLE32.984']

551 883 ZSTD_compress_insertDictionary call site: 00290 /src/zstd/lib/compress/zstd_compress.c:5166
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 00000 /src/zstd/lib/compress/huf_compress.c:1143
442 442 3 :

['MEM_readLE32.3341', 'ERR_isError.3342', 'ZSTD_loadDEntropy']

442 442 ZSTD_loadEntropy_intoDDict call site: 00721 /src/zstd/lib/decompress/zstd_ddict.c:95
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 03062 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00579 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 03193 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
309 309 1 :

['ZSTD_resetCCtx_byCopyingCDict']

309 309 ZSTD_resetCCtx_usingCDict call site: 01078 /src/zstd/lib/compress/zstd_compress.c:2505
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00581 /src/zstd/lib/common/fse_decompress.c:307
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 00950 /src/zstd/lib/compress/zstdmt_compress.c:1030
136 144 2 :

['ZSTD_overrideCParams', 'ZSTD_dedicatedDictSearch_getCParams']

136 1066 ZSTD_createCDict_advanced2 call site: 00151 /src/zstd/lib/compress/zstd_compress.c:5623
82 82 3 :

['ZSTD_DDictHashSet_addDDict', 'ZSTD_createDDictHashSet', 'ERR_isError.3611']

82 82 ZSTD_DCtx_refDDict call site: 00822 /src/zstd/lib/decompress/zstd_decompress.c:1785

Runtime coverage analysis

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

Fuzzer: stream_decompress

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 818 35.1%
gold [1:9] 14 0.60%
yellow [10:29] 18 0.77%
greenyellow [30:49] 12 0.51%
lawngreen 50+ 1464 62.9%
All colors 2326 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 02042 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 01680 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 02166 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 01682 /src/zstd/lib/common/fse_decompress.c:307
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 01822 /src/zstd/lib/decompress/zstd_decompress.c:707
54 54 1 :

['ZSTD_getFrameHeader']

54 54 ZSTD_getFrameContentSize call site: 01641 /src/zstd/lib/decompress/zstd_decompress.c:570
22 22 1 :

['ZSTD_buildFSETable_body_default']

22 22 ZSTD_buildFSETable call site: 01795 /src/zstd/lib/decompress/zstd_decompress_block.c:632
8 8 2 :

['ZSTD_DDict_dictSize', 'ZSTD_DDict_dictContent']

13 23 ZSTD_decompressBegin_usingDDict call site: 01655 /src/zstd/lib/decompress/zstd_decompress.c:1603
8 8 2 :

['ZSTD_DDict_dictSize', 'ZSTD_DDict_dictContent']

8 2185 ZSTD_decompressMultiFrame call site: 01212 /src/zstd/lib/decompress/zstd_decompress.c:1080
5 5 1 :

['ZSTD_copyDDictParameters']

5 5 ZSTD_decompressBegin_usingDDict call site: 01662 /src/zstd/lib/decompress/zstd_decompress.c:1612
4 4 1 :

['XXH_readLE32']

4 4 XXH_readLE32_align call site: 00608 /src/zstd/lib/common/xxhash.h:2765
2 2 2 :

['ZSTD_decompress_insertDictionary', 'ERR_isError.3611']

2 2 ZSTD_decompressBegin_usingDict call site: 01669 /src/zstd/lib/decompress/zstd_decompress.c:1589

Runtime coverage analysis

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

Files reached

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

Fuzzer: huf_decompress

Call tree

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

Call tree overview bitmap:

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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 9 FUZZ_dataProducer_int32Range call site: 00007 /src/zstd/tests/fuzz/fuzz_data_producer.c:60
0 0 None 0 0 HUF_DEltX1_set4 call site: 00125 /src/zstd/lib/decompress/huf_decompress.c:337
0 0 None 0 0 HUF_buildDEltX2U32 call site: 00147 /src/zstd/lib/decompress/huf_decompress.c:968
0 0 None 0 0 HUF_decompress4X2_usingDTable_internal_fast call site: 00275 /src/zstd/lib/decompress/huf_decompress.c:1710
0 0 None 0 0 HUF_DecompressFastArgs_init call site: 00247 /src/zstd/lib/decompress/huf_decompress.c:203
0 0 None 0 0 HUF_initRemainingDStream call site: 00270 /src/zstd/lib/decompress/huf_decompress.c:284
0 0 None 0 0 FUZZ_dataProducer_uint32Range call site: 00010 /src/zstd/tests/fuzz/fuzz_data_producer.c:44

Runtime coverage analysis

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

Files reached

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

Fuzzer: fse_read_ncount

Call tree

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

Call tree overview bitmap:

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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['FSE_readNCount_body_bmi2']

67 67 FSE_readNCount_bmi2 call site: 00038 /src/zstd/lib/common/entropy_common.c:211
0 0 None 0 27 FSE_writeNCount call site: 00020 /src/zstd/lib/compress/fse_compress.c:336
0 0 None 0 9 FUZZ_dataProducer_int32Range call site: 00011 /src/zstd/tests/fuzz/fuzz_data_producer.c:60
0 0 None 0 0 FSE_writeNCount_generic call site: 00021 /src/zstd/lib/compress/fse_compress.c:268
0 0 None 0 0 FSE_writeNCount_generic call site: 00021 /src/zstd/lib/compress/fse_compress.c:283
0 0 None 0 0 FSE_writeNCount_generic call site: 00021 /src/zstd/lib/compress/fse_compress.c:305
0 0 None 0 0 FSE_writeNCount_generic call site: 00021 /src/zstd/lib/compress/fse_compress.c:314
0 0 None 0 0 FSE_writeNCount_generic call site: 00022 /src/zstd/lib/compress/fse_compress.c:319
0 0 None 0 0 FUZZ_dataProducer_uint32Range call site: 00007 /src/zstd/tests/fuzz/fuzz_data_producer.c:44
0 0 None 0 0 FUZZ_malloc call site: 00002 /src/zstd/tests/fuzz/fuzz_helpers.c:18

Runtime coverage analysis

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

Files reached

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

Fuzzer: 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 707 44.9%
gold [1:9] 2 0.12%
yellow [10:29] 3 0.19%
greenyellow [30:49] 3 0.19%
lawngreen 50+ 859 54.5%
All colors 1574 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_reset_compressedBlockState', 'MEM_readLE32.984', 'ZSTD_loadZstdDictionary', 'ZSTD_loadDictionaryContent']

1215 1217 ZSTD_compress_insertDictionary call site: 00316 /src/zstd/lib/compress/zstd_compress.c:5158
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01230 /src/zstd/lib/compress/huf_compress.c:1143
374 374 2 :

['ZSTD_ldm_generateSequences', 'ZSTD_ldm_blockCompress']

374 378 ZSTD_buildSeqStore call site: 00878 /src/zstd/lib/compress/zstd_compress.c:3284
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 00096 /src/zstd/lib/compress/zstd_compress.c:5206
200 213 9 :

['ZSTD_freeCDict', 'ZSTDMT_freeCCtxPool', 'ZSTDMT_serialState_free', 'ZSTDMT_freeJobsTable', 'ZSTDMT_freeBufferPool', 'POOL_free', 'ZSTDMT_freeSeqPool', 'ZSTD_customFree.2986', 'ZSTDMT_releaseAllJobResources']

200 213 ZSTDMT_freeCCtx call site: 01523 /src/zstd/lib/compress/zstdmt_compress.c:1030
89 89 1 :

['ZSTD_DUBT_findBetterDictMatch']

89 89 ZSTD_DUBT_findBestMatch call site: 00000 /src/zstd/lib/compress/zstd_lazy.c:373
80 82 5 :

['ZSTD_copySequencesToSeqStoreExplicitBlockDelim', 'ERR_isError.969', 'ZSTD_fastSequenceLengthSum', 'ZSTD_postProcessSequenceProducerResult', 'ZSTD_sequenceBound']

80 153 ZSTD_buildSeqStore call site: 00912 /src/zstd/lib/compress/zstd_compress.c:3309
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01311 /src/zstd/lib/compress/zstd_compress_sequences.c:428
31 31 2 :

['MEM_writeLE32.1047', 'ZSTD_XXH64_digest']

31 31 ZSTD_writeEpilogue call site: 01498 /src/zstd/lib/compress/zstd_compress.c:5323
24 24 2 :

['ZSTD_getSeqStore', 'ZSTD_copyBlockSequences']

24 26 ZSTD_compressBlock_internal call site: 01476 /src/zstd/lib/compress/zstd_compress.c:4365
22 22 1 :

['ZSTD_copyBlockSequences']

22 24 ZSTD_compressSeqStore_singleBlock call site: 01441 /src/zstd/lib/compress/zstd_compress.c:4102
18 18 1 :

['ZSTD_XXH64_update']

1971 4107 ZSTD_compress_frameChunk call site: 00771 /src/zstd/lib/compress/zstd_compress.c:4564

Runtime coverage analysis

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

Files reached

filename functions hit
tests/fuzz/simple_compress.c 1
tests/fuzz/fuzz_data_producer.c 6
tests/fuzz/fuzz_helpers.c 1
lib/compress/zstd_compress.c 115
lib/compress/../common/allocations.h 2
lib/compress/../common/zstd_internal.h 4
lib/compress/../common/cpu.h 3
lib/compress/zstd_cwksp.h 34
lib/compress/../common/error_private.h 1
lib/compress/zstd_compress_internal.h 40
lib/compress/../common/mem.h 19
lib/compress/../common/bits.h 7
lib/compress/zstd_ldm.c 20
lib/compress/../common/compiler.h 1
lib/common/xxhash.h 16
lib/compress/zstd_fast.c 3
lib/compress/zstd_double_fast.c 3
lib/compress/zstd_lazy.c 4
lib/compress/zstd_opt.c 2
lib/compress/huf_compress.c 37
lib/common/entropy_common.c 9
lib/common/fse_decompress.c 4
lib/common/error_private.h 2
lib/common/mem.h 10
lib/common/bits.h 3
lib/common/bitstream.h 4
lib/common/fse.h 3
lib/compress/fse_compress.c 12
lib/compress/zstd_preSplit.c 8
lib/compress/hist.c 5
lib/compress/zstd_compress_superblock.c 13
lib/compress/../common/bitstream.h 6
lib/compress/../common/fse.h 5
lib/compress/zstd_compress_sequences.c 11
lib/compress/zstd_compress_literals.c 5
lib/common/zstd_common.c 2
lib/compress/zstdmt_compress.c 8
lib/common/pool.c 2
lib/common/threading.c 2
lib/common/../common/allocations.h 1

Fuzzer: 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 1910 44.4%
gold [1:9] 4 0.09%
yellow [10:29] 2 0.04%
greenyellow [30:49] 9 0.20%
lawngreen 50+ 2370 55.1%
All colors 4295 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_compressBlock_fast_noDict_7_0', 'ZSTD_compressBlock_fast_noDict_6_0', 'ZSTD_compressBlock_fast_noDict_5_0', 'ZSTD_compressBlock_fast_noDict_4_0']

484 484 ZSTD_compressBlock_fast call site: 00000 /src/zstd/lib/compress/zstd_fast.c:451
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01386 /src/zstd/lib/compress/huf_compress.c:1143
431 431 1 :

['ZSTD_decompressSequencesLong_default']

431 431 ZSTD_decompressSequencesLong call site: 04062 /src/zstd/lib/decompress/zstd_decompress_block.c:1988
133 133 1 :

['ZSTDMT_updateCParams_whileCompressing']

133 3405 ZSTD_compressStream2 call site: 02107 /src/zstd/lib/compress/zstd_compress.c:6434
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01467 /src/zstd/lib/compress/zstd_compress_sequences.c:428
57 57 1 :

['ZSTD_DCtx_selectFrameDDict']

57 61 ZSTD_decodeFrameHeader call site: 03839 /src/zstd/lib/decompress/zstd_decompress.c:707
45 45 1 :

['ZSTD_isUpdateAuthorized']

45 164 ZSTD_CCtx_setParameter call site: 01792 /src/zstd/lib/compress/zstd_compress.c:719
22 24 2 :

['ZSTD_getSeqStore', 'ZSTD_copyBlockSequences']

22 26 ZSTD_compressBlock_internal call site: 01632 /src/zstd/lib/compress/zstd_compress.c:4365
22 22 1 :

['ZSTD_copyBlockSequences']

22 24 ZSTD_compressSeqStore_singleBlock call site: 01597 /src/zstd/lib/compress/zstd_compress.c:4102
10 25 2 :

['ZSTDMT_releaseAllJobResources', 'ZSTDMT_waitForAllJobsCompleted']

10 1069 ZSTDMT_initCStream_internal call site: 02057 /src/zstd/lib/compress/zstdmt_compress.c:1255
10 25 2 :

['ZSTDMT_releaseAllJobResources', 'ZSTDMT_waitForAllJobsCompleted']

10 25 ZSTDMT_flushProduced call site: 02306 /src/zstd/lib/compress/zstdmt_compress.c:1479
6 6 1 :

['ZSTD_window_isEmpty']

6 513 ZSTD_loadDictionaryContent call site: 00361 /src/zstd/lib/compress/zstd_compress.c:4899

Runtime coverage analysis

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

Files reached

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

Fuzzer: simple_round_trip

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2120 51.2%
gold [1:9] 4 0.09%
yellow [10:29] 2 0.04%
greenyellow [30:49] 5 0.12%
lawngreen 50+ 2004 48.4%
All colors 4135 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

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

['ZSTD_createCDict_advanced']

839 1031 ZSTDMT_initCStream_internal call site: 00969 /src/zstd/lib/compress/zstdmt_compress.c:1263
835 835 1 :

['ZSTD_createCDict_advanced2']

835 835 ZSTD_initLocalDict call site: 00263 /src/zstd/lib/compress/zstd_compress.c:1263
551 551 2 :

['ZSTD_loadZstdDictionary', 'MEM_readLE32.984']

551 883 ZSTD_compress_insertDictionary call site: 00414 /src/zstd/lib/compress/zstd_compress.c:5166
464 464 1 :

['HUF_compress1X_usingCTable_internal_default']

464 464 HUF_compress1X_usingCTable_internal call site: 01758 /src/zstd/lib/compress/huf_compress.c:1143
374 374 1 :

['ZSTD_resetCCtx_usingCDict']

374 374 ZSTD_compressBegin_internal call site: 01020 /src/zstd/lib/compress/zstd_compress.c:5206
332 332 1 :

['HUF_readStats_body_default']

332 332 HUF_readStats_wksp call site: 00663 /src/zstd/lib/common/entropy_common.c:334
329 329 1 :

['ZSTD_decompressSequencesSplitLitBuffer_default']

329 329 ZSTD_decompressSequencesSplitLitBuffer call site: 03999 /src/zstd/lib/decompress/zstd_decompress_block.c:1965
310 310 2 :

['ZSTDMT_resize', 'ERR_isError.2987']

1159 1379 ZSTDMT_initCStream_internal call site: 00937 /src/zstd/lib/compress/zstdmt_compress.c:1247
235 235 1 :

['FSE_decompress_wksp_body_default']

235 235 FSE_decompress_wksp_bmi2 call site: 00665 /src/zstd/lib/common/fse_decompress.c:307
133 133 1 :

['ZSTDMT_updateCParams_whileCompressing']

133 3405 ZSTD_compressStream2 call site: 01145 /src/zstd/lib/compress/zstd_compress.c:6434
89 89 1 :

['ZSTD_DUBT_findBetterDictMatch']

89 89 ZSTD_DUBT_findBestMatch call site: 00000 /src/zstd/lib/compress/zstd_lazy.c:373
68 68 1 :

['ZSTD_encodeSequences_default']

68 68 ZSTD_encodeSequences call site: 01839 /src/zstd/lib/compress/zstd_compress_sequences.c:428

Runtime coverage analysis

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

Files reached

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

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

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

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
ZSTD_compressBlock_btlazy2_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 4562
ZSTD_decompressSequencesLong /src/zstd/lib/decompress/zstd_decompress_block.c 7 ['N/A', 'N/A', 'size_t', 'N/A', 'size_t', 'int', 'int'] 6 0 67 8 3 33 0 748 696
ZSTD_compressBlock_lazy2_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZSTD_compressBlock_lazy2_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZSTD_compressBlock_lazy_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZSTD_compressBlock_lazy_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZSTD_compressBlock_greedy_extDict_row /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZSTD_compressBlock_greedy_extDict /src/zstd/lib/compress/zstd_lazy.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'size_t'] 8 0 5408 691 653 108 0 4669 653
ZDICT_trainFromBuffer_legacy /src/zstd/lib/dictBuilder/zdict.c 6 ['N/A', 'size_t', 'N/A', 'N/A', 'int', 'N/A'] 25 0 83 8 4 485 0 3773 626
ZSTD_decompressSequencesSplitLitBuffer /src/zstd/lib/decompress/zstd_decompress_block.c 7 ['N/A', 'N/A', 'size_t', 'N/A', 'size_t', 'int', 'int'] 6 0 67 8 3 31 0 548 431

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

Functions statically reachable by fuzzers
66.0%
1149 / 1729
Cyclomatic complexity statically reachable by fuzzers
76.0%
17425 / 22786

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 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/block_decompress.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['BIT_lookBitsFast', 'ZSTD_execSequenceEndSplitLitBuffer', 'BIT_readBitsFast', 'ZSTD_execSequenceEnd', 'ZSTD_decompressBlock_internal', 'ZSTD_freeDCtx', 'ZSTD_decompressSequencesSplitLitBuffer_bmi2', 'FUZZ_malloc_rand']

tests/fuzz/raw_dictionary_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_decompressSequencesLong_bmi2', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_compress_frameChunk', 'ZSTD_assertValidSequence', 'ZSTDMT_initCStream_internal']

tests/fuzz/dictionary_loader.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_CCtx_init_compressStream2', 'MEM_writeLE16', 'ZSTD_fillDoubleHashTableForCCtx', 'ZSTD_freeCCtx', 'ZSTD_compressStream2', 'ZSTD_compressEnd_public']

tests/fuzz/generate_sequences.c

Dictionary

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


tests/fuzz/simple_decompress.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['FSE_buildDTable', 'ZSTD_execSequenceEndSplitLitBuffer', 'BIT_reloadDStream_internal', 'ZSTD_initFseState', 'HUF_decompress1X_usingDTable', 'HUF_decompress4X1_DCtx_wksp', 'ZSTDv02_decompress', 'ZSTD_buildSeqTable']

tests/fuzz/block_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['ZSTD_hash8', 'ZSTD_execSequenceEnd', 'ZSTD_compressContinue_internal', 'ZSTD_minGain', 'BIT_reloadDStream_internal', 'ZSTD_isAligned', 'ZSTD_safecopyLiterals', 'ZSTD_entropyCompressSeqStore', 'ZSTD_window_update', '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=['ZSTD_fillHashTableForCDict', 'ZSTD_minGain', 'FSE_buildDTable', 'ZSTD_XXH64_update', 'ZSTD_safecopyLiterals', 'ZSTD_entropyCompressSeqStore', 'ZSTD_buildSequencesStatistics', 'ZSTD_freeCCtxContent']

tests/fuzz/decompress_dstSize_tooSmall.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_hash7', 'MEM_writeLE16', 'ZSTD_blockSplitterEnabled', 'ZSTD_execSequenceEndSplitLitBuffer', 'MEM_readLE64', 'ZSTD_safecopyLiterals']

tests/fuzz/zstd_frame_info.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['ZSTD_isLegacy', 'ZSTDv05_getFrameParams', 'ZSTDv06_getFrameParams', 'MEM_readLE32', 'ZSTD_getFrameHeader_advanced', 'ZSTDv02_findFrameSizeInfoLegacy', 'ZSTDv03_findFrameSizeInfoLegacy', 'ZSTDv04_findFrameSizeInfoLegacy']

tests/fuzz/seekable_roundtrip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE24', 'BIT_reloadDStream', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_decompressStream', 'MEM_readLE64', 'MEM_writeLE16', 'ZSTD_hash8']

tests/fuzz/stream_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'ZSTD_decompressMultiFrame', 'BIT_reloadDStream', 'ZSTD_decompressStream', 'MEM_readLE64', 'MEM_writeLE16', 'ZSTD_assertValidSequence', 'ZSTD_findFrameSizeInfo', 'ZSTD_getDDict', 'MEM_readLE32']

tests/fuzz/decompress_cross_format.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'BIT_reloadDStream', 'ZSTD_decompressMultiFrame', 'ZSTD_XXH64_reset', 'MEM_readLE64', 'ZSTD_decompressStream', 'MEM_readLE32', 'ZSTD_execSequenceEndSplitLitBuffer']

tests/fuzz/dictionary_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_assertValidSequence', 'ZSTDMT_initCStream_internal', 'HUF_compress1X_usingCTable_internal_bmi2', 'BIT_reloadDStream_internal']

tests/fuzz/huf_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['HUF_compress1X_usingCTable_internal_bmi2', 'BIT_reloadDStream_internal', 'HUF_decompress1X_usingDTable', 'BIT_readBitsFast', 'FSE_initDState', 'BIT_initDStream', 'MEM_writeLEST', 'LLVMFuzzerTestOneInput', 'MEM_writeLE64']

tests/fuzz/sequence_compression_api.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'ZSTD_fillHashTableForCDict', 'MEM_writeLE16', 'ZSTD_freeCCtx', 'ZSTD_CCtx_init_compressStream2', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_window_update']

tests/fuzz/stream_decompress.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['FSE_buildDTable', 'BIT_reloadDStream_internal', 'ZSTD_decompressContinueStream', 'ZSTD_initFseState', 'ZSTD_getFrameHeader_advanced', 'HUF_decompress1X_usingDTable', 'ZSTDv07_decompressBegin_usingDict', 'HUF_decompress4X1_DCtx_wksp']

tests/fuzz/huf_decompress.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['BIT_reloadDStream_internal', 'HUF_decompress1X_usingDTable', 'BIT_readBitsFast', 'FSE_initDState', 'BIT_initDStream', 'MEM_readLE32', 'MEM_readLE64']

tests/fuzz/fse_read_ncount.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['LLVMFuzzerTestOneInput', 'MEM_readLE32', 'FSE_readNCount', 'FUZZ_dataProducer_int32Range', 'FSE_writeNCount', 'FSE_isError', 'ZSTD_countTrailingZeros32']

tests/fuzz/simple_compress.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['ZSTD_hash8', 'MEM_readLE64', 'ZSTD_isAligned', 'ZSTD_safecopyLiterals', 'ZSTD_window_update', 'ZSTD_freeCCtxContent', 'ZSTD_buildBlockEntropyStats', 'ZSTD_insertBt1', 'HUF_compress1X_usingCTable_internal_bmi2', 'ZSTD_resetCCtx_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=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_decompressSequencesLong_bmi2', 'ZSTD_isLegacy', 'MEM_readLE64', 'ZSTD_compress_frameChunk', 'ZSTD_assertValidSequence']

tests/fuzz/simple_round_trip.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['MEM_readLE16', 'MEM_readLE32', 'BIT_reloadDStream', 'MEM_writeLE16', 'ZSTD_assertValidSequence', 'MEM_readLE64', 'ZSTDMT_initCStream_internal', 'HUF_compress1X_usingCTable_internal_bmi2', 'BIT_readBitsFast']

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

Directories in report

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

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
block_decompress fuzzerLogFile-0-NGE4wfNBUt.data fuzzerLogFile-0-NGE4wfNBUt.data.yaml block_decompress.covreport
raw_dictionary_round_trip fuzzerLogFile-0-xpLIgjS4Nq.data fuzzerLogFile-0-xpLIgjS4Nq.data.yaml raw_dictionary_round_trip.covreport
dictionary_loader fuzzerLogFile-0-Fy1BOlUfHJ.data fuzzerLogFile-0-Fy1BOlUfHJ.data.yaml dictionary_loader.covreport
generate_sequences fuzzerLogFile-0-HfbRcFsID7.data fuzzerLogFile-0-HfbRcFsID7.data.yaml generate_sequences.covreport
simple_decompress fuzzerLogFile-0-uiTyJaZBET.data fuzzerLogFile-0-uiTyJaZBET.data.yaml simple_decompress.covreport
block_round_trip fuzzerLogFile-0-CviDD8CAsh.data fuzzerLogFile-0-CviDD8CAsh.data.yaml block_round_trip.covreport
dictionary_decompress fuzzerLogFile-0-GAomp7dnJl.data fuzzerLogFile-0-GAomp7dnJl.data.yaml dictionary_decompress.covreport
decompress_dstSize_tooSmall fuzzerLogFile-0-8hY7INsyrm.data fuzzerLogFile-0-8hY7INsyrm.data.yaml decompress_dstSize_tooSmall.covreport
zstd_frame_info fuzzerLogFile-0-wV1ZPLyRqt.data fuzzerLogFile-0-wV1ZPLyRqt.data.yaml zstd_frame_info.covreport
seekable_roundtrip fuzzerLogFile-0-fPFU4KR32A.data fuzzerLogFile-0-fPFU4KR32A.data.yaml seekable_roundtrip.covreport
stream_round_trip fuzzerLogFile-0-mlYC4Dspyl.data fuzzerLogFile-0-mlYC4Dspyl.data.yaml stream_round_trip.covreport
decompress_cross_format fuzzerLogFile-0-156Tmv5Bmj.data fuzzerLogFile-0-156Tmv5Bmj.data.yaml decompress_cross_format.covreport
dictionary_round_trip fuzzerLogFile-0-Fc3z6B5kQ0.data fuzzerLogFile-0-Fc3z6B5kQ0.data.yaml dictionary_round_trip.covreport
huf_round_trip fuzzerLogFile-0-eYxtAc2YPy.data fuzzerLogFile-0-eYxtAc2YPy.data.yaml huf_round_trip.covreport
sequence_compression_api fuzzerLogFile-0-XjeGhKQ6MA.data fuzzerLogFile-0-XjeGhKQ6MA.data.yaml sequence_compression_api.covreport
stream_decompress fuzzerLogFile-0-cTa7g2HsLo.data fuzzerLogFile-0-cTa7g2HsLo.data.yaml stream_decompress.covreport
huf_decompress fuzzerLogFile-0-tR26fKiXqn.data fuzzerLogFile-0-tR26fKiXqn.data.yaml huf_decompress.covreport
fse_read_ncount fuzzerLogFile-0-cQRbrP8kqH.data fuzzerLogFile-0-cQRbrP8kqH.data.yaml fse_read_ncount.covreport
simple_compress fuzzerLogFile-0-xVEcO2fid5.data fuzzerLogFile-0-xVEcO2fid5.data.yaml simple_compress.covreport
dictionary_stream_round_trip fuzzerLogFile-0-UjKImni1UX.data fuzzerLogFile-0-UjKImni1UX.data.yaml dictionary_stream_round_trip.covreport
simple_round_trip fuzzerLogFile-0-KNs8xWkVcI.data fuzzerLogFile-0-KNs8xWkVcI.data.yaml simple_round_trip.covreport