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

Fuzzer details

Fuzzer: filters_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3 5.26%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 54 94.7%
All colors 57 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 20 DeltaFuzzer::RunFilter(unsignedchar*,unsignedlong) call site: 00000 /src/lzma-fuzz/filters_fuzzer.cc:190
0 0 None 0 5 CPU_Is_InOrder call site: 00044 /src/lzma-fuzz/sdk/C/CpuArch.c:152
0 0 None 0 0 CPU_Is_Aes_Supported call site: 00012 /src/lzma-fuzz/sdk/C/CpuArch.c:195
0 0 None 0 0 Sha256_Update call site: 00000 /src/lzma-fuzz/sdk/C/Sha256.c:180

Runtime coverage analysis

Covered functions
62
Functions that are reachable but not covered
6
Reachable functions
52
Percentage of reachable functions covered
88.46%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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
filters_fuzzer.cc 17
sdk/C/Aes.c 6
sdk/C/CpuArch.c 5
sdk/C/AesOpt.c 3
sdk/C/7zCrc.c 1
sdk/C/7zCrcOpt.c 2
sdk/C/XzCrc64.c 1
sdk/C/XzCrc64Opt.c 1

Fuzzer: ppmdenc_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 4 4.0%
gold [1:9] 1 1.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 95 95.0%
All colors 100 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 121 Ppmd7_EncodeSymbol call site: 00061 /src/lzma-fuzz/sdk/C/Ppmd7Enc.c:149
0 0 None 0 105 Ppmd7_DecodeSymbol call site: 00094 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:150
0 0 None 0 0 LzmaAlloc(ISzAllocconst*,unsignedlong) call site: 00000 /src/lzma-fuzz/./common-alloc.h:36
0 0 None 0 0 InputByteBuffer::Read() call site: 00000 /src/lzma-fuzz/./common-buffer.h:232
0 0 None 0 0 SzAlloc call site: 00000 /src/lzma-fuzz/sdk/C/7zAlloc.c:28
0 0 None 0 0 Ppmd7_Alloc call site: 00003 /src/lzma-fuzz/sdk/C/Ppmd7.c:115
0 0 None 0 0 Ppmd7z_RangeDec_Init call site: 00000 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:16
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00090 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:115
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00096 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:185

Runtime coverage analysis

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

Files reached

filename functions hit
ppmdenc_fuzzer.cc 1
sdk/C/Ppmd7.c 23
./common-buffer.h 8
sdk/C/Ppmd7Enc.c 7
sdk/C/Ppmd7Dec.c 6

Fuzzer: lzmadec_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2 9.09%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 20 90.9%
All colors 22 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 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00012 /src/lzma-fuzz/sdk/C/LzmaDec.c:929
0 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00017 /src/lzma-fuzz/sdk/C/LzmaDec.c:983
0 0 None 0 388 LzmaDec_DecodeToDic call site: 00014 /src/lzma-fuzz/sdk/C/LzmaDec.c:980
0 0 None 0 4 LzmaDec_Allocate call site: 00004 /src/lzma-fuzz/sdk/C/LzmaDec.c:1143
0 0 None 0 0 LzmaAlloc(ISzAllocconst*,unsignedlong) call site: 00000 /src/lzma-fuzz/./common-alloc.h:36
0 0 None 0 0 SzAlloc call site: 00000 /src/lzma-fuzz/sdk/C/7zAlloc.c:28
0 0 None 0 0 LzmaDec_DecodeToDic call site: 00013 /src/lzma-fuzz/sdk/C/LzmaDec.c:957
0 0 None 0 0 LzmaProps_Decode call site: 00001 /src/lzma-fuzz/sdk/C/LzmaDec.c:1085
0 0 None 0 0 LzmaDec_Allocate call site: 00006 /src/lzma-fuzz/sdk/C/LzmaDec.c:1151
0 0 None 0 0 LzmaDec_DecodeReal_3 call site: 00015 /src/lzma-fuzz/sdk/C/LzmaDec.c:533
0 0 None 0 0 LzmaDec_AllocateProbs2 call site: 00005 /src/lzma-fuzz/sdk/C/LzmaDec.c:1113

Runtime coverage analysis

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

Files reached

filename functions hit
lzmadec_fuzzer.cc 1
sdk/C/LzmaDec.c 14

Fuzzer: lzma2dec_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2 6.66%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 28 93.3%
All colors 30 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 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00025 /src/lzma-fuzz/sdk/C/LzmaDec.c:983
0 0 None 0 388 LzmaDec_DecodeToDic call site: 00022 /src/lzma-fuzz/sdk/C/LzmaDec.c:980
0 0 None 0 4 LzmaDec_Allocate call site: 00006 /src/lzma-fuzz/sdk/C/LzmaDec.c:1143
0 0 None 0 0 LzmaAlloc(ISzAllocconst*,unsignedlong) call site: 00000 /src/lzma-fuzz/./common-alloc.h:36
0 0 None 0 0 SzAlloc call site: 00000 /src/lzma-fuzz/sdk/C/7zAlloc.c:28
0 0 None 0 0 Lzma2Dec_DecodeToDic call site: 00015 /src/lzma-fuzz/sdk/C/Lzma2Dec.c:209
0 0 None 0 0 Lzma2Dec_DecodeToDic call site: 00016 /src/lzma-fuzz/sdk/C/Lzma2Dec.c:241
0 0 None 0 0 Lzma2Dec_GetOldProps call site: 00003 /src/lzma-fuzz/sdk/C/Lzma2Dec.c:60
0 0 None 0 0 LzmaProps_Decode call site: 00005 /src/lzma-fuzz/sdk/C/LzmaDec.c:1085
0 0 None 0 0 LzmaProps_Decode call site: 00005 /src/lzma-fuzz/sdk/C/LzmaDec.c:1090
0 0 None 0 0 LzmaProps_Decode call site: 00005 /src/lzma-fuzz/sdk/C/LzmaDec.c:1095
0 0 None 0 0 LzmaDec_Allocate call site: 00008 /src/lzma-fuzz/sdk/C/LzmaDec.c:1151

Runtime coverage analysis

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

Files reached

filename functions hit
lzma2dec_fuzzer.cc 2
sdk/C/Lzma2Dec.c 7
sdk/C/LzmaDec.c 13

Fuzzer: xzdec_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 11 7.18%
gold [1:9] 2 1.30%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.65%
lawngreen 50+ 139 90.8%
All colors 153 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
21 21 1 :

['Lzma2Dec_AllocateProbs']

21 21 Lzma2State_SetProps call site: 00076 /src/lzma-fuzz/sdk/C/XzDec.c:364
8 8 1 :

['Delta_Encode']

8 8 BraState_Filter call site: 00116 /src/lzma-fuzz/sdk/C/XzDec.c:155
0 269 1 :

['Lzma2Dec_DecodeToDic']

0 269 Lzma2State_Code2 call site: 00094 /src/lzma-fuzz/sdk/C/XzDec.c:392
0 2 1 :

['LzmaDec_FreeProbs']

0 2 Lzma2State_Free call site: 00071 /src/lzma-fuzz/sdk/C/XzDec.c:351
0 0 None 0 718 XzDecMt_Decode call site: 00032 /src/lzma-fuzz/sdk/C/XzDec.c:2545
0 0 None 0 673 XzDecMt_Decode_ST call site: 00034 /src/lzma-fuzz/sdk/C/XzDec.c:2326
0 0 None 0 673 XzDecMt_Decode_ST call site: 00034 /src/lzma-fuzz/sdk/C/XzDec.c:2336
0 0 None 0 671 XzDecMt_Decode_ST call site: 00035 /src/lzma-fuzz/sdk/C/XzDec.c:2397
0 0 None 0 671 XzDecMt_Decode_ST call site: 00036 /src/lzma-fuzz/sdk/C/XzDec.c:2439
0 0 None 0 19 XzDecMt_Create call site: 00021 /src/lzma-fuzz/sdk/C/XzDec.c:1514
0 0 None 0 5 CPU_Is_InOrder call site: 00006 /src/lzma-fuzz/sdk/C/CpuArch.c:152
0 0 None 0 4 LzmaDec_Allocate call site: 00087 /src/lzma-fuzz/sdk/C/LzmaDec.c:1143

Runtime coverage analysis

Covered functions
106
Functions that are reachable but not covered
6
Reachable functions
115
Percentage of reachable functions covered
94.78%
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
xzdec_fuzzer.cc 1
sdk/C/7zCrc.c 3
sdk/C/7zCrcOpt.c 2
sdk/C/CpuArch.c 4
sdk/C/XzCrc64.c 2
sdk/C/XzCrc64Opt.c 1
sdk/C/XzDec.c 40
./common-buffer.h 9
sdk/C/Alloc.c 3
sdk/C/Xz.c 5
sdk/C/Sha256.c 4
sdk/C/LzmaDec.c 14
sdk/C/Lzma2Dec.c 8
sdk/C/Delta.c 4
sdk/C/Bra86.c 1
sdk/C/Bra.c 4
sdk/C/BraIA64.c 1

Fuzzer: lzmaenc_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 15 9.49%
gold [1:9] 2 1.26%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 141 89.2%
All colors 158 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
9 9 1 :

['MatchFinder_Normalize']

9 33 MatchFinder_CheckLimits call site: 00000 /src/lzma-fuzz/sdk/C/LzFind.c:375
0 0 None 0 407 LzmaEnc_CodeOneBlock call site: 00122 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2537
0 0 None 0 388 LzmaDec_DecodeToDic call site: 00140 /src/lzma-fuzz/sdk/C/LzmaDec.c:942
0 0 None 0 121 LzmaDec_DecodeReal2 call site: 00142 /src/lzma-fuzz/sdk/C/LzmaDec.c:632
0 0 None 0 44 LzmaEnc_CodeOneBlock call site: 00056 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2282
0 0 None 0 41 LzmaEnc_Alloc call site: 00030 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2562
0 0 None 0 37 LzmaEnc_Alloc call site: 00031 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2576
0 0 None 0 37 LzmaEnc_Alloc call site: 00032 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2587
0 0 None 0 7 MatchFinder_Create call site: 00033 /src/lzma-fuzz/sdk/C/LzFind.c:184
0 0 None 0 7 MatchFinder_Create call site: 00037 /src/lzma-fuzz/sdk/C/LzFind.c:201
0 0 None 0 4 LzmaEnc_Alloc call site: 00033 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2605
0 0 None 0 0 LzmaAlloc(ISzAllocconst*,unsignedlong) call site: 00000 /src/lzma-fuzz/./common-alloc.h:36

Runtime coverage analysis

Covered functions
108
Functions that are reachable but not covered
2
Reachable functions
91
Percentage of reachable functions covered
97.8%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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
lzmaenc_fuzzer.cc 1
sdk/C/LzmaEnc.c 48
sdk/C/LzFind.c 9
./common-buffer.h 10
sdk/C/LzmaDec.c 12

Fuzzer: 7z_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 44 15.8%
gold [1:9] 13 4.69%
yellow [10:29] 6 2.16%
greenyellow [30:49] 1 0.36%
lawngreen 50+ 213 76.8%
All colors 277 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
25 25 1 :

['AllocUnitsRare']

25 25 AllocUnits call site: 00183 /src/lzma-fuzz/sdk/C/Ppmd7.c:251
5 5 1 :

['SplitBlock']

5 5 ShrinkUnits call site: 00155 /src/lzma-fuzz/sdk/C/Ppmd7.c:270
0 974 3 :

['SzAr_Free', 'SzReadAndDecodePackedStreams', 'SzAr_Init']

0 1424 SzReadHeader2 call site: 00229 /src/lzma-fuzz/sdk/C/7zArcIn.c:1130
0 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00120 /src/lzma-fuzz/sdk/C/LzmaDec.c:983
0 232 12 :

['CountDefinedBits', 'ReadUi32s', 'SzBitUi32s_Free', 'RememberBitVector', 'SkipData', 'SzAr_GetFolderUnpackSize', 'ReadBitVector', 'ReadTime', 'SzReadNumber32', 'SzReadFileNames', 'SzBitUi32s_Alloc', 'ReadNumber']

0 232 SzReadHeader2 call site: 00239 /src/lzma-fuzz/sdk/C/7zArcIn.c:1205
0 183 5 :

['ReadBitUi32s', 'WaitId', 'SzReadNumber32', 'SkipData', 'ReadNumber']

0 183 ReadUnpackInfo call site: 00056 /src/lzma-fuzz/sdk/C/7zArcIn.c:660
0 24 1 :

['Rescale']

0 111 Ppmd7_Update1 call site: 00191 /src/lzma-fuzz/sdk/C/Ppmd7.c:681
0 16 1 :

['SzReadNumber32']

0 16 SzReadHeader2 call site: 00258 /src/lzma-fuzz/sdk/C/7zArcIn.c:1445
0 16 1 :

['SzReadNumber32']

0 16 ReadTime call site: 00249 /src/lzma-fuzz/sdk/C/7zArcIn.c:1057
0 13 1 :

['SkipData']

0 72 SzReadHeader2 call site: 00252 /src/lzma-fuzz/sdk/C/7zArcIn.c:1284
0 11 1 :

['RestartModel']

0 11 UpdateModel call site: 00164 /src/lzma-fuzz/sdk/C/Ppmd7.c:464
0 3 1 :

['CountDefinedBits']

0 52 ReadSubStreamsInfo call site: 00076 /src/lzma-fuzz/sdk/C/7zArcIn.c:899

Runtime coverage analysis

Covered functions
124
Functions that are reachable but not covered
7
Reachable functions
133
Percentage of reachable functions covered
94.74%
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
7z_fuzzer.cc 1
sdk/C/7zCrc.c 2
sdk/C/7zCrcOpt.c 2
sdk/C/CpuArch.c 4
sdk/C/7zArcIn.c 34
./common-buffer.h 10
sdk/C/7zStream.c 3
sdk/C/7zBuf.c 3
sdk/C/7zDec.c 10
sdk/C/LzmaDec.c 11
sdk/C/Lzma2Dec.c 6
sdk/C/Ppmd7.c 23
sdk/C/Ppmd7Dec.c 7
sdk/C/Bcj2.c 2
sdk/C/Delta.c 3
sdk/C/Bra86.c 1
sdk/C/Bra.c 4
sdk/C/BraIA64.c 1

Fuzzer: lzma2enc_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 26 13.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 172 86.8%
All colors 198 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
9 9 1 :

['MatchFinder_Normalize']

9 33 MatchFinder_CheckLimits call site: 00000 /src/lzma-fuzz/sdk/C/LzFind.c:375
0 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00179 /src/lzma-fuzz/sdk/C/LzmaDec.c:924
0 0 None 101 640 Lzma2Enc_EncodeMt1 call site: 00027 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:512
0 0 None 101 589 Lzma2Enc_EncodeMt1 call site: 00028 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:522
0 0 None 101 589 Lzma2Enc_EncodeMt1 call site: 00038 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:538
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00043 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:555
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00043 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:562
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00072 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:593
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00076 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:600
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00076 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:604
0 0 None 101 547 Lzma2Enc_EncodeMt1 call site: 00155 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:608
0 0 None 0 407 LzmaEnc_CodeOneBlock call site: 00150 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2537

Runtime coverage analysis

Covered functions
132
Functions that are reachable but not covered
5
Reachable functions
119
Percentage of reachable functions covered
95.8%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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
lzma2enc_fuzzer.cc 1
sdk/C/Lzma2Enc.c 15
sdk/C/LzmaEnc.c 54
./common-buffer.h 11
sdk/C/LzFind.c 9
sdk/C/Lzma2Dec.c 7
sdk/C/LzmaDec.c 11

Fuzzer: xzenc_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 46 12.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 334 87.8%
All colors 380 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
61 61 1 :

['XzEncProps_Normalize_Fixed']

61 61 XzProps_Normalize call site: 00031 /src/lzma-fuzz/sdk/C/XzEnc.c:586
21 21 1 :

['Lzma2Dec_AllocateProbs']

21 21 Lzma2State_SetProps call site: 00308 /src/lzma-fuzz/sdk/C/XzDec.c:364
13 13 1 :

['MixCoder_ResetFromMethod']

13 17 XzDecMix_Init call site: 00299 /src/lzma-fuzz/sdk/C/XzDec.c:890
9 9 1 :

['MatchFinder_Normalize']

9 33 MatchFinder_CheckLimits call site: 00000 /src/lzma-fuzz/sdk/C/LzFind.c:375
4 4 1 :

['XzEnc_FreeOutBufs']

4 819 XzEnc_Encode call site: 00051 /src/lzma-fuzz/sdk/C/XzEnc.c:1219
0 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

0 388 LzmaDec_DecodeToDic call site: 00333 /src/lzma-fuzz/sdk/C/LzmaDec.c:929
0 269 1 :

['Lzma2Dec_DecodeToDic']

0 269 Lzma2State_Code2 call site: 00326 /src/lzma-fuzz/sdk/C/XzDec.c:392
0 5 1 :

['XzEncIndex_ReAlloc']

0 5 XzEncIndex_AddIndexRecord call site: 00246 /src/lzma-fuzz/sdk/C/XzEnc.c:180
0 2 1 :

['LzmaDec_FreeProbs']

0 2 Lzma2State_Free call site: 00303 /src/lzma-fuzz/sdk/C/XzDec.c:351
0 0 None 101 640 Lzma2Enc_EncodeMt1 call site: 00106 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:512
0 0 None 101 589 Lzma2Enc_EncodeMt1 call site: 00107 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:522
0 0 None 101 589 Lzma2Enc_EncodeMt1 call site: 00117 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:538

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
14
Reachable functions
232
Percentage of reachable functions covered
93.97%
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
xzenc_fuzzer.cc 1
sdk/C/7zCrc.c 3
sdk/C/7zCrcOpt.c 2
sdk/C/CpuArch.c 4
sdk/C/XzCrc64.c 2
sdk/C/XzCrc64Opt.c 1
sdk/C/XzEnc.c 36
sdk/C/Lzma2Enc.c 13
sdk/C/LzmaEnc.c 53
./common-buffer.h 11
sdk/C/Xz.c 5
sdk/C/Sha256.c 4
sdk/C/XzDec.c 40
sdk/C/Delta.c 4
sdk/C/Bra86.c 1
sdk/C/Bra.c 4
sdk/C/BraIA64.c 1
sdk/C/LzFind.c 9
sdk/C/Alloc.c 3
sdk/C/LzmaDec.c 14
sdk/C/Lzma2Dec.c 8

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/lzma-fuzz/sdk/C/AesOpt.c ['filters_fuzzer'] ['filters_fuzzer']
/src/lzma-fuzz/sdk/C/Lzma2Dec.c ['lzma2dec_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer'] ['lzma2dec_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/7zBuf.c ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/sdk/C/7zDec.c ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/lzma2enc_fuzzer.cc ['lzma2enc_fuzzer'] ['lzma2enc_fuzzer']
/src/lzma-fuzz/sdk/C/CpuArch.c ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/lzma2dec_fuzzer.cc ['lzma2dec_fuzzer'] ['lzma2dec_fuzzer']
/src/lzma-fuzz/sdk/C/XzCrc64.c ['filters_fuzzer', 'xzdec_fuzzer', 'xzenc_fuzzer'] ['filters_fuzzer', 'xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/7zArcIn.c ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/ppmdenc_fuzzer.cc ['ppmdenc_fuzzer'] ['ppmdenc_fuzzer']
/src/lzma-fuzz/sdk/C/LzmaDec.c ['lzmadec_fuzzer', 'lzma2dec_fuzzer', 'xzdec_fuzzer', 'lzmaenc_fuzzer', '7z_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer'] ['lzmadec_fuzzer', 'lzma2dec_fuzzer', 'xzdec_fuzzer', 'lzmaenc_fuzzer', '7z_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/xzenc_fuzzer.cc ['xzenc_fuzzer'] ['xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/7zStream.c ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/lzmaenc_fuzzer.cc ['lzmaenc_fuzzer'] ['lzmaenc_fuzzer']
/src/lzma-fuzz/sdk/C/LzFind.c ['lzmaenc_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer'] ['lzmaenc_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/xzdec_fuzzer.cc ['xzdec_fuzzer'] ['xzdec_fuzzer']
/src/lzma-fuzz/7z_fuzzer.cc ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/sdk/C/Bra86.c ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/XzDec.c ['xzdec_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Ppmd7.c ['ppmdenc_fuzzer', '7z_fuzzer'] ['ppmdenc_fuzzer', '7z_fuzzer']
/src/lzma-fuzz/sdk/C/7zCrc.c ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Aes.c ['filters_fuzzer'] ['filters_fuzzer']
/src/lzma-fuzz/sdk/C/LzmaEnc.c ['lzmaenc_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer'] ['lzmaenc_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Delta.c ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Lzma2Enc.c ['lzma2enc_fuzzer', 'xzenc_fuzzer'] ['lzma2enc_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/./common-buffer.h ['ppmdenc_fuzzer', 'xzdec_fuzzer', 'lzmaenc_fuzzer', '7z_fuzzer', 'lzma2enc_fuzzer', 'xzenc_fuzzer'] []
/src/lzma-fuzz/sdk/C/Ppmd7Enc.c ['ppmdenc_fuzzer'] ['ppmdenc_fuzzer']
/src/lzma-fuzz/lzmadec_fuzzer.cc ['lzmadec_fuzzer'] ['lzmadec_fuzzer']
/src/lzma-fuzz/sdk/C/Sha256.c ['xzdec_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/7zAlloc.c [] []
/src/lzma-fuzz/sdk/C/Bra.c ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/XzCrc64Opt.c ['filters_fuzzer', 'xzdec_fuzzer', 'xzenc_fuzzer'] ['filters_fuzzer', 'xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/filters_fuzzer.cc ['filters_fuzzer'] ['filters_fuzzer']
/src/lzma-fuzz/sdk/C/7zCrcOpt.c ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['filters_fuzzer', 'xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Ppmd7Dec.c ['ppmdenc_fuzzer', '7z_fuzzer'] ['ppmdenc_fuzzer', '7z_fuzzer']
/src/lzma-fuzz/sdk/C/BraIA64.c ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', '7z_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Alloc.c ['xzdec_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/Bcj2.c ['7z_fuzzer'] ['7z_fuzzer']
/src/lzma-fuzz/sdk/C/Xz.c ['xzdec_fuzzer', 'xzenc_fuzzer'] ['xzdec_fuzzer', 'xzenc_fuzzer']
/src/lzma-fuzz/sdk/C/XzEnc.c ['xzenc_fuzzer'] ['xzenc_fuzzer']
/src/lzma-fuzz/./common-alloc.h [] []

Directories in report

Directory
/src/lzma-fuzz/./
/src/lzma-fuzz/sdk/C/
/src/lzma-fuzz/