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

Fuzzer details

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 1 1.07%
gold [1:9] 1 1.07%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 91 97.8%
All colors 93 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: 00058 /src/lzma-fuzz/sdk/C/Ppmd7Enc.c:149
0 0 None 0 105 Ppmd7_DecodeSymbol call site: 00087 /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: 00079 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:16
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00083 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:115
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00089 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:185

Runtime coverage analysis

Covered functions
53
Functions that are reachable but not covered
1
Reachable functions
48
Percentage of reachable functions covered
97.92%
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
ppmdenc_fuzzer.cc 1
sdk/C/Ppmd7.c 23
./common-buffer.h 6
sdk/C/Ppmd7Enc.c 7
sdk/C/Ppmd7Dec.c 3

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 1 2.63%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 37 97.3%
All colors 38 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: 00029 /src/lzma-fuzz/sdk/C/CpuArch.c:152
0 0 None 0 0 CPU_Is_Aes_Supported call site: 00006 /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
2
Reachable functions
39
Percentage of reachable functions covered
94.87%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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 16
sdk/C/Aes.c 1
sdk/C/CpuArch.c 5
sdk/C/7zCrc.c 1
sdk/C/XzCrc64.c 1

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 0 0.0%
gold [1:9] 1 1.23%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 80 98.7%
All colors 81 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: 00000 /src/lzma-fuzz/sdk/C/XzDec.c:364
8 8 1 :

['Delta_Encode']

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

['Lzma2Dec_DecodeToDic']

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

['LzmaDec_FreeProbs']

0 2 Lzma2State_Free call site: 00000 /src/lzma-fuzz/sdk/C/XzDec.c:351
0 0 None 0 298 XzDecMt_Decode call site: 00020 /src/lzma-fuzz/sdk/C/XzDec.c:2545
0 0 None 0 253 XzDecMt_Decode_ST call site: 00022 /src/lzma-fuzz/sdk/C/XzDec.c:2326
0 0 None 0 253 XzDecMt_Decode_ST call site: 00022 /src/lzma-fuzz/sdk/C/XzDec.c:2336
0 0 None 0 251 XzDecMt_Decode_ST call site: 00023 /src/lzma-fuzz/sdk/C/XzDec.c:2397
0 0 None 0 251 XzDecMt_Decode_ST call site: 00024 /src/lzma-fuzz/sdk/C/XzDec.c:2439
0 0 None 0 10 XzDecMt_Create call site: 00011 /src/lzma-fuzz/sdk/C/XzDec.c:1514
0 0 None 0 5 CPU_Is_InOrder call site: 00003 /src/lzma-fuzz/sdk/C/CpuArch.c:152
0 0 None 0 4 LzmaDec_Allocate call site: 00000 /src/lzma-fuzz/sdk/C/LzmaDec.c:1143

Runtime coverage analysis

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

Files reached

filename functions hit
xzdec_fuzzer.cc 1
sdk/C/7zCrc.c 3
sdk/C/CpuArch.c 4
sdk/C/XzCrc64.c 2
sdk/C/XzDec.c 31
./common-buffer.h 5
sdk/C/Alloc.c 1
sdk/C/Xz.c 5
sdk/C/Sha256.c 4

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 7 4.57%
gold [1:9] 2 1.30%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 144 94.1%
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
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: 00117 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2537
0 0 None 0 388 LzmaDec_DecodeToDic call site: 00135 /src/lzma-fuzz/sdk/C/LzmaDec.c:942
0 0 None 0 121 LzmaDec_DecodeReal2 call site: 00137 /src/lzma-fuzz/sdk/C/LzmaDec.c:632
0 0 None 0 44 LzmaEnc_CodeOneBlock call site: 00051 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2282
0 0 None 0 41 LzmaEnc_Alloc call site: 00025 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2562
0 0 None 0 37 LzmaEnc_Alloc call site: 00026 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2576
0 0 None 0 37 LzmaEnc_Alloc call site: 00027 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2587
0 0 None 0 7 MatchFinder_Create call site: 00028 /src/lzma-fuzz/sdk/C/LzFind.c:184
0 0 None 0 7 MatchFinder_Create call site: 00032 /src/lzma-fuzz/sdk/C/LzFind.c:201
0 0 None 0 4 LzmaEnc_Alloc call site: 00028 /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
85
Percentage of reachable functions covered
97.65%
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 6
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 43 16.6%
gold [1:9] 15 5.79%
yellow [10:29] 5 1.93%
greenyellow [30:49] 1 0.38%
lawngreen 50+ 195 75.2%
All colors 259 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: 00165 /src/lzma-fuzz/sdk/C/Ppmd7.c:251
5 5 1 :

['SplitBlock']

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

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

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

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

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

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

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

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

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

['Rescale']

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

['SzReadNumber32']

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

['SzReadNumber32']

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

['SkipData']

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

['RestartModel']

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

['CountDefinedBits']

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

Runtime coverage analysis

Covered functions
124
Functions that are reachable but not covered
6
Reachable functions
114
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.
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
7z_fuzzer.cc 1
sdk/C/7zCrc.c 2
sdk/C/CpuArch.c 4
sdk/C/7zArcIn.c 34
./common-buffer.h 2
sdk/C/7zStream.c 3
sdk/C/7zBuf.c 3
sdk/C/7zDec.c 9
sdk/C/LzmaDec.c 11
sdk/C/Lzma2Dec.c 6
sdk/C/Ppmd7.c 23
sdk/C/Ppmd7Dec.c 3
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 20 10.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 171 89.5%
All colors 191 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: 00172 /src/lzma-fuzz/sdk/C/LzmaDec.c:924
0 0 None 101 638 Lzma2Enc_EncodeMt1 call site: 00022 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:512
0 0 None 101 587 Lzma2Enc_EncodeMt1 call site: 00023 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:522
0 0 None 101 587 Lzma2Enc_EncodeMt1 call site: 00023 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:538
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00037 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:555
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00037 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:562
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00066 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:593
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00070 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:600
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00070 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:604
0 0 None 101 545 Lzma2Enc_EncodeMt1 call site: 00148 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:608
0 0 None 0 407 LzmaEnc_CodeOneBlock call site: 00143 /src/lzma-fuzz/sdk/C/LzmaEnc.c:2537

Runtime coverage analysis

Covered functions
132
Functions that are reachable but not covered
5
Reachable functions
111
Percentage of reachable functions covered
95.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.
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 14
sdk/C/LzmaEnc.c 53
./common-buffer.h 7
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 33 10.9%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 268 89.0%
All colors 301 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: 00020 /src/lzma-fuzz/sdk/C/XzEnc.c:586
21 21 1 :

['Lzma2Dec_AllocateProbs']

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

['MixCoder_ResetFromMethod']

13 17 XzDecMix_Init call site: 00259 /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 712 XzEnc_Encode call site: 00037 /src/lzma-fuzz/sdk/C/XzEnc.c:1219
0 388 2 :

['LzmaDec_DecodeReal2', 'LzmaDec_TryDummy']

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

['Lzma2Dec_DecodeToDic']

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

['XzEncIndex_ReAlloc']

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

['LzmaDec_FreeProbs']

0 2 Lzma2State_Free call site: 00000 /src/lzma-fuzz/sdk/C/XzDec.c:351
0 0 None 101 638 Lzma2Enc_EncodeMt1 call site: 00070 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:512
0 0 None 101 587 Lzma2Enc_EncodeMt1 call site: 00071 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:522
0 0 None 101 587 Lzma2Enc_EncodeMt1 call site: 00071 /src/lzma-fuzz/sdk/C/Lzma2Enc.c:538

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
10
Reachable functions
174
Percentage of reachable functions covered
94.25%
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
xzenc_fuzzer.cc 1
sdk/C/7zCrc.c 3
sdk/C/CpuArch.c 4
sdk/C/XzCrc64.c 2
sdk/C/XzEnc.c 32
sdk/C/Lzma2Enc.c 12
sdk/C/LzmaEnc.c 52
./common-buffer.h 7
sdk/C/Xz.c 5
sdk/C/Sha256.c 4
sdk/C/XzDec.c 31
sdk/C/LzFind.c 9
sdk/C/Alloc.c 1

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.

ppmdenc_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['AllocUnitsRare']

filters_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['AesFuzzer::AesFuzzer(unsigned char const*, unsigned long)']

lzmadec_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['LzmaDec_Allocate', 'LzmaDec_DecodeToDic']

lzma2dec_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['LzmaDec_Allocate', 'LzmaDec_DecodeToDic']

xzdec_fuzzer.cc

Dictionary

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


lzmaenc_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['LzmaDec_DecodeReal2', 'LzmaEnc_Alloc', 'MatchFinder_Create', 'LzmaEnc_CodeOneBlock']

7z_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['CreateSuccessors', 'SzReadHeader2', 'SzFolder_Decode2', 'ShrinkUnits', 'ReadSubStreamsInfo', 'AllocUnits', 'ReadTime', 'ReadPackInfo', 'LzmaDec_DecodeToDic']

lzma2enc_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['LzmaEnc_CodeOneBlock', 'LzmaEnc_InitPrices', 'LenEnc_Encode', 'LzmaDec_DecodeReal2', 'LzmaEnc_Alloc', 'MatchFinder_Create']

xzenc_fuzzer.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['LzmaEnc_CodeOneBlock', 'LzmaEnc_InitPrices', 'Lzma2EncProps_Normalize', 'LenEnc_Encode', 'Xz_CompressBlock', 'MixCoder_SetFromMethod', 'Xz_WriteHeader', 'SeqInFilter_Init', 'LzmaEnc_Alloc']

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

Directories in report

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