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: readtable

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 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1547
Functions that are reachable but not covered
18
Reachable functions
31
Percentage of reachable functions covered
41.94%
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
common.h 9
readtable.c 1

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 4 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

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

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 4 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1500
Functions that are reachable but not covered
17
Reachable functions
30
Percentage of reachable functions covered
43.33%
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
common.h 9
coerce.c 1

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 4 8.33%
gold [1:9] 11 22.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 33 68.7%
All colors 48 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1620
Functions that are reachable but not covered
18
Reachable functions
35
Percentage of reachable functions covered
48.57%
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
common.h 12
character.c 1

Fuzzer: eval

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 5.97%
gold [1:9] 11 16.4%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 52 77.6%
All colors 67 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1672
Functions that are reachable but not covered
19
Reachable functions
47
Percentage of reachable functions covered
59.57%
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
common.h 6
eval.c 7

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 7 15.9%
gold [1:9] 11 25.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 26 59.0%
All colors 44 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 38 run_slot call site: 00038 R_ParseVector
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1669
Functions that are reachable but not covered
18
Reachable functions
36
Percentage of reachable functions covered
50.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
common.h 9
parse.c 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 4 11.1%
gold [1:9] 11 30.5%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 58.3%
All colors 36 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1644
Functions that are reachable but not covered
20
Reachable functions
29
Percentage of reachable functions covered
31.03%
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
common.h 8
zip.c 1

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 4 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

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

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 4 9.09%
gold [1:9] 11 25.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 29 65.9%
All colors 44 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1661
Functions that are reachable but not covered
18
Reachable functions
34
Percentage of reachable functions covered
47.06%
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
common.h 10
datetime.c 2

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 4 9.52%
gold [1:9] 11 26.1%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 27 64.2%
All colors 42 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1737
Functions that are reachable but not covered
18
Reachable functions
34
Percentage of reachable functions covered
47.06%
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
common.h 7
sort.c 2

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 5 9.25%
gold [1:9] 11 20.3%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 38 70.3%
All colors 54 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf
1 42 run_io call site: 00042 abort

Runtime coverage analysis

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

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 4 9.52%
gold [1:9] 11 26.1%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 27 64.2%
All colors 42 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1692
Functions that are reachable but not covered
20
Reachable functions
35
Percentage of reachable functions covered
42.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
common.h 10
connections.c 1

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 4 11.1%
gold [1:9] 11 30.5%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 58.3%
All colors 36 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1671
Functions that are reachable but not covered
20
Reachable functions
29
Percentage of reachable functions covered
31.03%
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
common.h 8
load.c 1

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 4 9.30%
gold [1:9] 11 25.5%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 28 65.1%
All colors 43 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

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

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 4 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1677
Functions that are reachable but not covered
17
Reachable functions
31
Percentage of reachable functions covered
45.16%
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
common.h 9
unserialize.c 1

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 4 8.16%
gold [1:9] 11 22.4%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 2.04%
lawngreen 50+ 33 67.3%
All colors 49 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1559
Functions that are reachable but not covered
18
Reachable functions
38
Percentage of reachable functions covered
52.63%
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
common.h 11
encoding.c 2

Fuzzer: colors

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 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1615
Functions that are reachable but not covered
18
Reachable functions
31
Percentage of reachable functions covered
41.94%
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
common.h 9
colors.c 1

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 4 10.2%
gold [1:9] 11 28.2%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 24 61.5%
All colors 39 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1556
Functions that are reachable but not covered
17
Reachable functions
31
Percentage of reachable functions covered
45.16%
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
common.h 9
decompress.c 1

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 4 10.5%
gold [1:9] 11 28.9%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 60.5%
All colors 38 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
2 3 fuzz_run_on_r_thread call site: 00003 fprintf
2 17 fuzz_r_thread_main call site: 00017 fprintf

Runtime coverage analysis

Covered functions
1588
Functions that are reachable but not covered
18
Reachable functions
31
Percentage of reachable functions covered
41.94%
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
common.h 9
scan.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.

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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', 'fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main', 'run_io']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

common.h

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=['fuzz_run_on_r_thread', 'fuzz_r_thread_main']

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 81 54.0%
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%
namesCount 41 21 51.21%
cbind 236 122 51.69%
rbind 218 57 26.14%
R_nchar 110 47 42.72%
do_startsWith 95 35 36.84%
do_isna 87 34 39.08%
coercePairList 70 36 51.42%
coerceToSymbol 35 18 51.42%
coerceToRaw 65 27 41.53%
anyNA 98 45 45.91%
R_set_class 75 28 37.33%
R_run_onexits 34 16 47.05%
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%
do_attach 83 43 51.80%
do_as_environment 39 13 33.33%
findVarLocInFrame 41 20 48.78%
RemoveVariable 37 17 45.94%
handle_exec_continuation 33 4 12.12%
SymbolValue 32 15 46.87%
fgrep_one 49 13 26.53%
lbinary 102 55 53.92%
init_gc_grow_settings 53 13 24.52%
R_gc_internal 101 49 48.51%
dispatchMethod 92 33 35.86%
do_options 400 163 40.75%
do_fileinfo 110 57 51.81%
do_rep_int 54 20 37.03%
do_rep_len 63 33 52.38%
InBytesConn 31 13 41.93%
R_SizeFromEnv 44 20 45.45%
MatrixAssign 143 38 26.57%
logicalSubscript 113 62 54.86%
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% ['unserialize', 'connections', 'sort', 'sprintf', 'zip', 'coerce', 'load', 'io', 'parse', 'scan', 'dcf', 'encoding', 'readtable', 'datetime', 'decompress', 'format', 'colors', 'character', 'eval']
vwarningcall_dflt 88 17 19.31%
vsignalError 35 13 37.14%
LogicalAnswer 35 19 54.28%
Rf_asComplex 35 18 51.42%
do_cmathfuns 102 30 29.41%
Rf_sexptype2char 31 5 16.12%
REvprintf_internal 53 14 26.41%
ArrayAssign 145 32 22.06%
tre_regncomp 62 24 38.70%
do_expression 31 12 38.70%
list_files 35 16 45.71%
R_unlink 46 17 36.95%
do_aperm 169 25 14.79%
do_colsum 209 74 35.40%
do_array 85 45 52.94%
do_cum 88 26 29.54%
R_pcre_string_adj 60 9 15.0%
Rf_mat2indsub 83 34 40.96%
localtime0 96 11 11.45%
R_cmpfun 35 16 45.71%
do_setlocale 92 22 23.91%
do_qsort 64 32 50.0%
orderVector1 122 62 50.81%
vhash_one 86 14 16.27%
readFixedString 44 22 50.0%
dummy_vfprintf 48 22 45.83%
xzfile_open 55 30 54.54%
outtext_init 34 13 38.23%
R_gzseek 37 19 51.35%
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_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%
R_possible_dispatch 73 37 50.68%
OutString 31 6 19.35%
WriteItem 201 13 6.467%

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

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
readtable fuzzerLogFile-0-XlQYVgQL5X.data fuzzerLogFile-0-XlQYVgQL5X.data.yaml readtable.covreport
sprintf fuzzerLogFile-0-nk3FFrU2MG.data fuzzerLogFile-0-nk3FFrU2MG.data.yaml sprintf.covreport
coerce fuzzerLogFile-0-F91YpS4MwV.data fuzzerLogFile-0-F91YpS4MwV.data.yaml coerce.covreport
character fuzzerLogFile-0-3GU9yOdMQ6.data fuzzerLogFile-0-3GU9yOdMQ6.data.yaml character.covreport
eval fuzzerLogFile-0-2BZ4l5Rg4P.data fuzzerLogFile-0-2BZ4l5Rg4P.data.yaml eval.covreport
parse fuzzerLogFile-0-JPb35cciXI.data fuzzerLogFile-0-JPb35cciXI.data.yaml parse.covreport
zip fuzzerLogFile-0-yFYPhvLRBZ.data fuzzerLogFile-0-yFYPhvLRBZ.data.yaml zip.covreport
dcf fuzzerLogFile-0-oJOkNkCIsR.data fuzzerLogFile-0-oJOkNkCIsR.data.yaml dcf.covreport
datetime fuzzerLogFile-0-1tEkUPLruN.data fuzzerLogFile-0-1tEkUPLruN.data.yaml datetime.covreport
sort fuzzerLogFile-0-Y9yB28TemB.data fuzzerLogFile-0-Y9yB28TemB.data.yaml sort.covreport
io fuzzerLogFile-0-3wdbWhuSNt.data fuzzerLogFile-0-3wdbWhuSNt.data.yaml io.covreport
connections fuzzerLogFile-0-JLzJiWYozg.data fuzzerLogFile-0-JLzJiWYozg.data.yaml connections.covreport
load fuzzerLogFile-0-eAt8sWSMeB.data fuzzerLogFile-0-eAt8sWSMeB.data.yaml load.covreport
format fuzzerLogFile-0-hzsuAALq0C.data fuzzerLogFile-0-hzsuAALq0C.data.yaml format.covreport
unserialize fuzzerLogFile-0-VzzIwDyK6l.data fuzzerLogFile-0-VzzIwDyK6l.data.yaml unserialize.covreport
encoding fuzzerLogFile-0-dZ6FaujhQU.data fuzzerLogFile-0-dZ6FaujhQU.data.yaml encoding.covreport
colors fuzzerLogFile-0-apqAhj5l9A.data fuzzerLogFile-0-apqAhj5l9A.data.yaml colors.covreport
decompress fuzzerLogFile-0-mTXz0OlcEW.data fuzzerLogFile-0-mTXz0OlcEW.data.yaml decompress.covreport
scan fuzzerLogFile-0-i25HBqlLlz.data fuzzerLogFile-0-i25HBqlLlz.data.yaml scan.covreport