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

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: encoding

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 5.0%
lawngreen 50+ 19 95.0%
All colors 20 100

Runtime coverage analysis

Covered functions
1548
Functions that are reachable but not covered
1
Reachable functions
16
Percentage of reachable functions covered
93.75%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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
encoding.c 2
common.h 5

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

Runtime coverage analysis

Covered functions
1545
Functions that are reachable but not covered
0
Reachable functions
9
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
decompress.c 1
common.h 3

Fuzzer: character

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 19 100.%
All colors 19 100

Runtime coverage analysis

Covered functions
1604
Functions that are reachable but not covered
1
Reachable functions
13
Percentage of reachable functions covered
92.31%
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
character.c 1
common.h 6

Fuzzer: io

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 4.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 24 96.0%
All colors 25 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
1 13 run_io call site: 00013 abort

Runtime coverage analysis

Covered functions
1578
Functions that are reachable but not covered
1
Reachable functions
14
Percentage of reachable functions covered
92.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
io.c 2
common.h 3

Fuzzer: unserialize

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 100.%
All colors 9 100

Runtime coverage analysis

Covered functions
1639
Functions that are reachable but not covered
0
Reachable functions
9
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
unserialize.c 1
common.h 3

Fuzzer: sort

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 13 100.%
All colors 13 100

Runtime coverage analysis

Covered functions
1726
Functions that are reachable but not covered
1
Reachable functions
12
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
sort.c 2
common.h 1

Fuzzer: connections

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 13 100.%
All colors 13 100

Runtime coverage analysis

Covered functions
1681
Functions that are reachable but not covered
3
Reachable functions
13
Percentage of reachable functions covered
76.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
connections.c 1
common.h 4

Fuzzer: scan

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 100.%
All colors 9 100

Runtime coverage analysis

Covered functions
1576
Functions that are reachable but not covered
1
Reachable functions
9
Percentage of reachable functions covered
88.89%
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
scan.c 1
common.h 3

Fuzzer: zip

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 7 100.%
All colors 7 100

Runtime coverage analysis

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

Files reached

filename functions hit
zip.c 1
common.h 2

Fuzzer: 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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 14 100.%
All colors 14 100

Runtime coverage analysis

Covered functions
1773
Functions that are reachable but not covered
1
Reachable functions
11
Percentage of reachable functions covered
90.91%
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
format.c 1
common.h 3

Fuzzer: coerce

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 100.%
All colors 9 100

Runtime coverage analysis

Covered functions
1493
Functions that are reachable but not covered
0
Reachable functions
8
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
coerce.c 1
common.h 3

Fuzzer: sprintf

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 100.%
All colors 9 100

Runtime coverage analysis

Covered functions
1535
Functions that are reachable but not covered
1
Reachable functions
9
Percentage of reachable functions covered
88.89%
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
sprintf.c 1
common.h 3

Fuzzer: dcf

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 100.%
All colors 9 100

Runtime coverage analysis

Covered functions
1655
Functions that are reachable but not covered
1
Reachable functions
9
Percentage of reachable functions covered
88.89%
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
dcf.c 1
common.h 3

Fuzzer: load

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 7 100.%
All colors 7 100

Runtime coverage analysis

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

Files reached

filename functions hit
load.c 1
common.h 2

Fuzzer: parse

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 20.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 12 80.0%
All colors 15 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
3 9 run_slot call site: 00009 R_ParseVector

Runtime coverage analysis

Covered functions
1656
Functions that are reachable but not covered
1
Reachable functions
14
Percentage of reachable functions covered
92.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
parse.c 3
common.h 3

Fuzzer: datetime

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] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 15 100.%
All colors 15 100

Runtime coverage analysis

Covered functions
1650
Functions that are reachable but not covered
1
Reachable functions
12
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
datetime.c 2
common.h 4

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.

encoding.c

Dictionary

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


decompress.c

Dictionary

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


character.c

Dictionary

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


io.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=['run_io']

unserialize.c

Dictionary

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


sort.c

Dictionary

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


connections.c

Dictionary

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


scan.c

Dictionary

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


zip.c

Dictionary

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


format.c

Dictionary

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


coerce.c

Dictionary

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


sprintf.c

Dictionary

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


dcf.c

Dictionary

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


load.c

Dictionary

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


parse.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=['run_slot']

datetime.c

Dictionary

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


Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
tre_match 51 26 50.98%
tre_parse 697 342 49.06%
tre_stack_push 36 8 22.22%
R_common_command_line 170 43 25.29%
initLoadedDLL 56 20 35.71%
AddDLL 48 25 52.08%
process_Renviron 65 27 41.53%
R_binary 150 46 30.66%
do_matrix 126 65 51.58%
Rf_DropDims 93 41 44.08%
Rf_namesgets 53 27 50.94%
Rf_dimnamesgets 63 32 50.79%
do_attrgets 61 27 44.26%
R_do_slot 34 10 29.41%
do_AT 32 15 46.87%
c_Extract_opt 32 12 37.5%
ListAnswer 58 26 44.82%
namesCount 41 15 36.58%
cbind 236 122 51.69%
rbind 218 57 26.14%
R_nchar 110 47 42.72%
do_startsWith 95 35 36.84%
Rf_asInteger 32 16 50.0%
Rf_asReal 33 15 45.45%
do_isna 87 34 39.08%
coercePairList 70 18 25.71%
coerceVectorList 81 42 51.85%
coerceToSymbol 35 18 51.42%
coerceToRaw 65 27 41.53%
coerceToVectorList 53 18 33.96%
anyNA 98 45 45.91%
R_set_class 75 28 37.33%
R_run_onexits 34 15 44.11%
do_sys 66 27 40.90%
R_doDotCall 657 19 2.891%
resolveNativeRoutine 79 13 16.45%
R_cycle_detected 36 18 50.0%
Rf_copyMatrix 41 14 34.14%
Rf_unbindVar 36 19 52.77%
Rf_findVarInFrame3 44 24 54.54%
do_attach 83 43 51.80%
do_as_environment 39 13 33.33%
findVarLocInFrame 41 20 48.78%
RemoveVariable 37 17 45.94%
vsignalError 35 13 37.14%
handle_exec_continuation 33 4 12.12%
evalseq 40 18 45.0%
SymbolValue 32 15 46.87%
fgrep_one 49 13 26.53%
lbinary 102 50 49.01%
lunary 77 42 54.54%
init_gc_grow_settings 53 13 24.52%
R_gc_internal 101 43 42.57%
caseSPECIALSXP 58 31 53.44%
dispatchMethod 92 33 35.86%
do_options 400 163 40.75%
do_fileinfo 110 57 51.81%
do_relop_dflt 196 106 54.08%
string_relop 109 37 33.94%
do_rep_int 54 20 37.03%
do_rep_len 63 27 42.85%
seq_colon 36 6 16.66%
rep3 47 25 53.19%
InBytesConn 31 13 41.93%
R_SizeFromEnv 44 14 31.81%
do_subassign2_dflt 285 126 44.21%
R_subassign3_dflt 161 77 47.82%
VectorAssign 205 89 43.41%
MatrixAssign 143 37 25.87%
SubassignTypeFix 147 60 40.81%
Rf_OneIndex 89 34 38.20%
Rf_get1index 111 43 38.73%
logicalSubscript 113 52 46.01%
R_subset3_dflt 125 61 48.8%
do_summary 385 184 47.79%
do_first_min 89 40 44.94%
do_which 62 30 48.38%
duplicatedInit 38 19 50.0%
Rf_asChar 37 10 27.02%
Rf_initialize_R 210 88 41.90%
vwarningcall_dflt 88 17 19.31%
REvprintf_internal 53 14 26.41%
R_pow 40 15 37.5%
real_binary 235 92 39.14%
readFixedString 44 22 50.0%
OutString 31 6 19.35%
WriteItem 201 13 6.467%
do_colsum 209 74 35.40%
LogicalAnswer 35 19 54.28%
R_cmpfun 35 16 45.71%
do_qsort 64 32 50.0%
do_rep 127 66 51.96%
orderVector1 122 62 50.81%
vhash_one 86 14 16.27%
dummy_vfprintf 48 22 45.83%
xzfile_open 55 30 54.54%
outtext_init 34 13 38.23%
R_gzseek 37 19 51.35%
extract_one 109 56 51.37%
list_files 35 16 45.71%
R_unlink 46 17 36.95%
tre_copy_ast 122 44 36.06%
tre_parse_bound 245 82 33.46%
do_math1 53 24 45.28%
do_math2 41 10 24.39%
do_transpose 129 47 36.43%
do_array 85 45 52.94%
do_isinfinite 67 34 50.74%
formatIntegerS 32 17 53.12%
do_regexpr 285 81 28.42%
Rf_PrintValueRec 134 44 32.83%
PrintGenericVector 207 29 14.00%
Rf_printMatrix 54 24 44.44%
Rf_printArray 117 57 48.71%
Rf_printNamedVector 36 17 47.22%
do_aperm 169 25 14.79%
do_cum 88 26 29.54%
R_pcre_string_adj 60 9 15.0%
Rf_mat2indsub 83 34 40.96%
RestoreSEXP 70 34 48.57%
RestoreToEnv 41 21 51.21%
tre_regncomp 62 24 38.70%
do_expression 31 12 38.70%
localtime0 96 11 11.45%
do_setlocale 92 22 23.91%

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/r-oss-fuzz/harnesses/parse.c ['parse'] ['parse']
/src/r-oss-fuzz/harnesses/sprintf.c ['sprintf'] ['sprintf']
/src/r-oss-fuzz/harnesses/io.c ['io'] ['io']
/src/r-oss-fuzz/harnesses/sort.c ['sort'] ['sort']
/src/r-oss-fuzz/harnesses/load.c ['load'] ['load']
/src/r-oss-fuzz/harnesses/format.c ['format'] ['format']
/src/r-oss-fuzz/harnesses/encoding.c ['encoding'] ['encoding']
/src/r-oss-fuzz/harnesses/connections.c ['connections'] ['connections']
/src/r-oss-fuzz/harnesses/dcf.c ['dcf'] ['dcf']
/src/r-oss-fuzz/harnesses/coerce.c ['coerce'] ['coerce']
/src/r-oss-fuzz/harnesses/decompress.c ['decompress'] ['decompress']
/src/r-oss-fuzz/harnesses/unserialize.c ['unserialize'] ['unserialize']
/src/r-oss-fuzz/harnesses/scan.c ['scan'] ['scan']
/src/r-oss-fuzz/harnesses/datetime.c ['datetime'] ['datetime']
/src/r-oss-fuzz/harnesses/zip.c ['zip'] ['zip']
/src/r-oss-fuzz/harnesses/character.c ['character'] ['character']
/src/r-oss-fuzz/harnesses/common.h ['encoding', 'decompress', 'character', 'io', 'unserialize', 'sort', 'connections', 'scan', 'zip', 'format', 'coerce', 'sprintf', 'dcf', 'load', 'parse', 'datetime'] ['encoding', 'decompress', 'character', 'io', 'unserialize', 'sort', 'connections', 'scan', 'zip', 'format', 'coerce', 'sprintf', 'dcf', 'load', 'parse', 'datetime']

Directories in report

Directory
/src/r-oss-fuzz/harnesses/

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
encoding fuzzerLogFile-0-HOEWWNfpdw.data fuzzerLogFile-0-HOEWWNfpdw.data.yaml encoding.covreport
decompress fuzzerLogFile-0-hmtCpKT2Xo.data fuzzerLogFile-0-hmtCpKT2Xo.data.yaml decompress.covreport
character fuzzerLogFile-0-gGjJZMYiDs.data fuzzerLogFile-0-gGjJZMYiDs.data.yaml character.covreport
io fuzzerLogFile-0-7mU8VJGL0e.data fuzzerLogFile-0-7mU8VJGL0e.data.yaml io.covreport
unserialize fuzzerLogFile-0-7MubH0zAST.data fuzzerLogFile-0-7MubH0zAST.data.yaml unserialize.covreport
sort fuzzerLogFile-0-4bXzeVTeRO.data fuzzerLogFile-0-4bXzeVTeRO.data.yaml sort.covreport
connections fuzzerLogFile-0-a2diHBkari.data fuzzerLogFile-0-a2diHBkari.data.yaml connections.covreport
scan fuzzerLogFile-0-4KUHspq9dx.data fuzzerLogFile-0-4KUHspq9dx.data.yaml scan.covreport
zip fuzzerLogFile-0-8xCA2jYw4S.data fuzzerLogFile-0-8xCA2jYw4S.data.yaml zip.covreport
format fuzzerLogFile-0-PnHMa5eDBr.data fuzzerLogFile-0-PnHMa5eDBr.data.yaml format.covreport
coerce fuzzerLogFile-0-jeLvpakgEM.data fuzzerLogFile-0-jeLvpakgEM.data.yaml coerce.covreport
sprintf fuzzerLogFile-0-qTXk2qCF0b.data fuzzerLogFile-0-qTXk2qCF0b.data.yaml sprintf.covreport
dcf fuzzerLogFile-0-SsYAtwlt5I.data fuzzerLogFile-0-SsYAtwlt5I.data.yaml dcf.covreport
load fuzzerLogFile-0-4t8VrY6ppA.data fuzzerLogFile-0-4t8VrY6ppA.data.yaml load.covreport
parse fuzzerLogFile-0-tZgtRQypV0.data fuzzerLogFile-0-tZgtRQypV0.data.yaml parse.covreport
datetime fuzzerLogFile-0-LJH1bwQYSD.data fuzzerLogFile-0-LJH1bwQYSD.data.yaml datetime.covreport