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

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 814 90.4%
gold [1:9] 4 0.44%
yellow [10:29] 4 0.44%
greenyellow [30:49] 1 0.11%
lawngreen 50+ 77 8.55%
All colors 900 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
431 101 yaml_parser_fetch_stream_start call site: 00101 yaml_parser_parse_flow_mapping_key
267 618 LLVMFuzzerTestOneInput call site: 00618 yaml_parser_parse
69 548 yaml_stream_start_event_initialize call site: 00548 yaml_document_start_event_initialize
12 533 yaml_event_delete call site: 00533 yaml_free
9 40 yaml_parser_delete call site: 00040 yaml_token_delete
8 10 yaml_parser_initialize call site: 00010 yaml_free
7 30 yaml_emitter_initialize call site: 00030 yaml_parser_delete
2 54 yaml_parser_delete call site: 00054 yaml_free
2 98 yaml_parser_fetch_stream_start call site: 00098 yaml_realloc
2 894 yaml_emitter_delete call site: 00894 yaml_free
1 66 LLVMFuzzerTestOneInput call site: 00066 realloc
1 74 yaml_parser_fetch_more_tokens call site: 00074 yaml_parser_set_scanner_error

Runtime coverage analysis

Covered functions
26
Functions that are reachable but not covered
131
Reachable functions
156
Percentage of reachable functions covered
16.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
libyaml_emitter_fuzzer.c 3
libyamlapi.c 29
yaml_write_handler.h 1
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4
libyamlemitter.c 47
libyamlwriter.c 2

Fuzzer: libyaml_scanner_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 18 5.08%
gold [1:9] 14 3.95%
yellow [10:29] 9 2.54%
greenyellow [30:49] 10 2.82%
lawngreen 50+ 303 85.5%
All colors 354 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
2 350 yaml_parser_delete call site: 00350 yaml_free
1 33 yaml_parser_determine_encoding call site: 00033 yaml_parser_set_reader_error
1 48 yaml_parser_update_buffer call site: 00048 yaml_parser_set_reader_error
1 143 yaml_parser_fetch_directive call site: 00143 yaml_token_delete
1 201 yaml_parser_fetch_anchor call site: 00201 yaml_token_delete
1 221 yaml_parser_fetch_tag call site: 00221 yaml_token_delete
1 262 yaml_parser_fetch_block_scalar call site: 00262 yaml_token_delete
1 304 yaml_parser_fetch_flow_scalar call site: 00304 yaml_token_delete
1 337 yaml_parser_fetch_plain_scalar call site: 00337 yaml_token_delete

Runtime coverage analysis

Covered functions
58
Functions that are reachable but not covered
5
Reachable functions
62
Percentage of reachable functions covered
91.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
libyaml_scanner_fuzzer.c 1
libyamlapi.c 11
libyamlscanner.c 41
libyamlreader.c 4

Fuzzer: libyaml_parser_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 21 4.02%
gold [1:9] 15 2.87%
yellow [10:29] 15 2.87%
greenyellow [30:49] 14 2.68%
lawngreen 50+ 457 87.5%
All colors 522 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
2 358 yaml_parser_append_tag_directive call site: 00358 yaml_free
2 415 yaml_parser_state_machine call site: 00415 yaml_parser_parse_node
1 35 yaml_parser_determine_encoding call site: 00035 yaml_parser_set_reader_error
1 50 yaml_parser_update_buffer call site: 00050 yaml_parser_set_reader_error
1 145 yaml_parser_fetch_directive call site: 00145 yaml_token_delete
1 203 yaml_parser_fetch_anchor call site: 00203 yaml_token_delete
1 223 yaml_parser_fetch_tag call site: 00223 yaml_token_delete
1 264 yaml_parser_fetch_block_scalar call site: 00264 yaml_token_delete
1 306 yaml_parser_fetch_flow_scalar call site: 00306 yaml_token_delete
1 339 yaml_parser_fetch_plain_scalar call site: 00339 yaml_token_delete
1 341 yaml_parser_fetch_next_token call site: 00341 yaml_parser_set_parser_error

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_parser_fuzzer.c 1
libyamlapi.c 13
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4

Fuzzer: libyaml_loader_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 32 5.40%
gold [1:9] 15 2.53%
yellow [10:29] 16 2.70%
greenyellow [30:49] 16 2.70%
lawngreen 50+ 513 86.6%
All colors 592 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
3 527 yaml_parser_load_scalar call site: 00527 yaml_free
2 362 yaml_parser_append_tag_directive call site: 00362 yaml_free
2 419 yaml_parser_state_machine call site: 00419 yaml_parser_parse_node
2 539 yaml_parser_load_sequence call site: 00539 yaml_free
2 553 yaml_parser_load_mapping call site: 00553 yaml_free
1 39 yaml_parser_determine_encoding call site: 00039 yaml_parser_set_reader_error
1 54 yaml_parser_update_buffer call site: 00054 yaml_parser_set_reader_error
1 149 yaml_parser_fetch_directive call site: 00149 yaml_token_delete
1 207 yaml_parser_fetch_anchor call site: 00207 yaml_token_delete
1 227 yaml_parser_fetch_tag call site: 00227 yaml_token_delete
1 268 yaml_parser_fetch_block_scalar call site: 00268 yaml_token_delete

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_loader_fuzzer.c 1
libyamlapi.c 14
libyamlloader.c 14
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4

Fuzzer: libyaml_deconstructor_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 159 15.4%
gold [1:9] 16 1.55%
yellow [10:29] 14 1.35%
greenyellow [30:49] 13 1.26%
lawngreen 50+ 829 80.4%
All colors 1031 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
18 238 yaml_emitter_write_double_quoted_scalar call site: 00238 yaml_emitter_write_folded_scalar
17 337 yaml_document_start_event_initialize call site: 00337 yaml_check_utf8
11 116 yaml_emitter_state_machine call site: 00116 yaml_emitter_append_tag_directive
11 200 yaml_emitter_write_plain_scalar call site: 00200 yaml_emitter_write_single_quoted_scalar
8 10 yaml_parser_initialize call site: 00010 yaml_free
7 26 yaml_emitter_initialize call site: 00026 yaml_parser_delete
7 144 yaml_emitter_write_indent call site: 00144 yaml_emitter_write_indicator
6 173 yaml_emitter_emit_document_content call site: 00173 yaml_emitter_emit_alias
5 89 yaml_emitter_emit call site: 00089 yaml_emitter_analyze_anchor
5 194 yaml_emitter_write_plain_scalar call site: 00194 yaml_emitter_write_indent
4 157 yaml_emitter_write_tag_content call site: 00157 yaml_emitter_write_indent
3 153 yaml_emitter_write_tag_handle call site: 00153 yaml_emitter_write_tag_content

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_deconstructor_fuzzer.c 1
libyamlapi.c 28
yaml_write_handler.h 1
libyamlemitter.c 47
libyamlwriter.c 2
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4

Fuzzer: libyaml_reformatter_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 47 5.83%
gold [1:9] 19 2.36%
yellow [10:29] 11 1.36%
greenyellow [30:49] 16 1.98%
lawngreen 50+ 712 88.4%
All colors 805 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
6 26 yaml_emitter_initialize call site: 00026 yaml_free
4 568 yaml_emitter_analyze_tag_directive call site: 00568 yaml_emitter_set_emitter_error
3 641 yaml_emitter_write_plain_scalar call site: 00641 yaml_emitter_write_indent
2 382 yaml_parser_append_tag_directive call site: 00382 yaml_free
2 439 yaml_parser_state_machine call site: 00439 yaml_parser_parse_node
2 538 yaml_emitter_analyze_anchor call site: 00538 yaml_emitter_set_emitter_error
2 579 yaml_emitter_append_tag_directive call site: 00579 yaml_free
1 59 yaml_parser_determine_encoding call site: 00059 yaml_parser_set_reader_error
1 74 yaml_parser_update_buffer call site: 00074 yaml_parser_set_reader_error
1 169 yaml_parser_fetch_directive call site: 00169 yaml_token_delete
1 227 yaml_parser_fetch_anchor call site: 00227 yaml_token_delete

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_reformatter_fuzzer.c 1
libyamlapi.c 18
yaml_write_handler.h 1
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4
libyamlemitter.c 47
libyamlwriter.c 2

Fuzzer: libyaml_deconstructor_alt_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 166 15.9%
gold [1:9] 13 1.24%
yellow [10:29] 17 1.62%
greenyellow [30:49] 9 0.86%
lawngreen 50+ 839 80.3%
All colors 1044 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
18 239 yaml_emitter_write_double_quoted_scalar call site: 00239 yaml_emitter_write_folded_scalar
18 339 yaml_document_initialize call site: 00339 yaml_check_utf8
11 117 yaml_emitter_state_machine call site: 00117 yaml_emitter_append_tag_directive
11 201 yaml_emitter_write_plain_scalar call site: 00201 yaml_emitter_write_single_quoted_scalar
8 10 yaml_parser_initialize call site: 00010 yaml_free
7 26 yaml_emitter_initialize call site: 00026 yaml_parser_delete
7 145 yaml_emitter_write_indent call site: 00145 yaml_emitter_write_indicator
6 174 yaml_emitter_emit_document_content call site: 00174 yaml_emitter_emit_alias
5 90 yaml_emitter_emit call site: 00090 yaml_emitter_analyze_anchor
5 195 yaml_emitter_write_plain_scalar call site: 00195 yaml_emitter_write_indent
5 1003 yaml_emitter_dump call site: 01003 yaml_emitter_dump_alias
4 158 yaml_emitter_write_tag_content call site: 00158 yaml_emitter_write_indent

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_deconstructor_alt_fuzzer.c 1
libyamlapi.c 26
yaml_write_handler.h 1
libyamldumper.c 11
libyamlemitter.c 47
libyamlwriter.c 2
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4

Fuzzer: libyaml_reformatter_alt_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 62 6.63%
gold [1:9] 17 1.81%
yellow [10:29] 13 1.39%
greenyellow [30:49] 18 1.92%
lawngreen 50+ 825 88.2%
All colors 935 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
6 26 yaml_emitter_initialize call site: 00026 yaml_free
4 657 yaml_emitter_analyze_tag_directive call site: 00657 yaml_emitter_set_emitter_error
3 551 yaml_parser_load_scalar call site: 00551 yaml_free
3 730 yaml_emitter_write_plain_scalar call site: 00730 yaml_emitter_write_indent
2 386 yaml_parser_append_tag_directive call site: 00386 yaml_free
2 443 yaml_parser_state_machine call site: 00443 yaml_parser_parse_node
2 563 yaml_parser_load_sequence call site: 00563 yaml_free
2 577 yaml_parser_load_mapping call site: 00577 yaml_free
2 627 yaml_emitter_analyze_anchor call site: 00627 yaml_emitter_set_emitter_error
2 643 yaml_emitter_state_machine call site: 00643 yaml_emitter_write_bom
2 649 yaml_emitter_flush call site: 00649 yaml_emitter_set_writer_error

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_reformatter_alt_fuzzer.c 1
libyamlapi.c 20
yaml_write_handler.h 1
libyamlloader.c 14
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 4
libyamldumper.c 11
libyamlemitter.c 47
libyamlwriter.c 2

Fuzzer: libyaml_dumper_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 66 6.40%
gold [1:9] 28 2.71%
yellow [10:29] 23 2.23%
greenyellow [30:49] 15 1.45%
lawngreen 50+ 899 87.1%
All colors 1031 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
8 10 yaml_parser_initialize call site: 00010 yaml_free
6 30 yaml_emitter_initialize call site: 00030 yaml_free
4 101 yaml_emitter_analyze_tag_directive call site: 00101 yaml_emitter_set_emitter_error
3 176 yaml_emitter_write_plain_scalar call site: 00176 yaml_emitter_write_indent
3 815 yaml_parser_load_scalar call site: 00815 yaml_free
2 71 yaml_emitter_analyze_anchor call site: 00071 yaml_emitter_set_emitter_error
2 87 yaml_emitter_state_machine call site: 00087 yaml_emitter_write_bom
2 93 yaml_emitter_flush call site: 00093 yaml_emitter_set_writer_error
2 114 yaml_stack_extend call site: 00114 yaml_free
2 650 yaml_parser_append_tag_directive call site: 00650 yaml_free
2 707 yaml_parser_state_machine call site: 00707 yaml_parser_parse_node
2 827 yaml_parser_load_sequence call site: 00827 yaml_free

Runtime coverage analysis

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

Files reached

filename functions hit
libyaml_dumper_fuzzer.c 4
libyamlapi.c 28
yaml_write_handler.h 1
libyamldumper.c 11
libyamlemitter.c 47
libyamlwriter.c 2
libyamlloader.c 14
libyamlparser.c 23
libyamlscanner.c 40
libyamlreader.c 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.

libyaml_emitter_fuzzer.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=['yaml_parser_fetch_stream_start', 'LLVMFuzzerTestOneInput', 'yaml_stream_start_event_initialize', 'yaml_event_delete', 'yaml_parser_delete', 'yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_delete']

libyaml_scanner_fuzzer.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=['yaml_parser_initialize', 'yaml_parser_delete', 'yaml_parser_determine_encoding', 'yaml_parser_update_buffer', 'yaml_parser_fetch_directive', 'yaml_parser_fetch_anchor', 'yaml_parser_fetch_tag', 'yaml_parser_fetch_block_scalar', 'yaml_parser_fetch_flow_scalar', 'yaml_parser_fetch_plain_scalar']

libyaml_parser_fuzzer.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=['yaml_parser_initialize', 'yaml_parser_append_tag_directive', 'yaml_parser_state_machine', 'yaml_parser_determine_encoding', 'yaml_parser_update_buffer', 'yaml_parser_fetch_directive', 'yaml_parser_fetch_anchor', 'yaml_parser_fetch_tag', 'yaml_parser_fetch_block_scalar', 'yaml_parser_fetch_flow_scalar']

libyaml_loader_fuzzer.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=['yaml_parser_initialize', 'yaml_parser_load_scalar', 'yaml_parser_append_tag_directive', 'yaml_parser_state_machine', 'yaml_parser_load_sequence', 'yaml_parser_load_mapping', 'yaml_parser_determine_encoding', 'yaml_parser_update_buffer', 'yaml_parser_fetch_directive', 'yaml_parser_fetch_anchor']

libyaml_deconstructor_fuzzer.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=['yaml_emitter_write_double_quoted_scalar', 'yaml_document_start_event_initialize', 'yaml_emitter_state_machine', 'yaml_emitter_write_plain_scalar', 'yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_write_indent', 'yaml_emitter_emit_document_content', 'yaml_emitter_emit']

libyaml_reformatter_fuzzer.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=['yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_analyze_tag_directive', 'yaml_emitter_write_plain_scalar', 'yaml_parser_append_tag_directive', 'yaml_parser_state_machine', 'yaml_emitter_analyze_anchor', 'yaml_emitter_append_tag_directive', 'yaml_parser_determine_encoding', 'yaml_parser_update_buffer']

libyaml_deconstructor_alt_fuzzer.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=['yaml_emitter_write_double_quoted_scalar', 'yaml_document_initialize', 'yaml_emitter_state_machine', 'yaml_emitter_write_plain_scalar', 'yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_write_indent', 'yaml_emitter_emit_document_content', 'yaml_emitter_emit']

libyaml_reformatter_alt_fuzzer.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=['yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_analyze_tag_directive', 'yaml_parser_load_scalar', 'yaml_emitter_write_plain_scalar', 'yaml_parser_append_tag_directive', 'yaml_parser_state_machine', 'yaml_parser_load_sequence', 'yaml_parser_load_mapping', 'yaml_emitter_analyze_anchor']

libyaml_dumper_fuzzer.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=['yaml_parser_initialize', 'yaml_emitter_initialize', 'yaml_emitter_analyze_tag_directive', 'yaml_emitter_write_plain_scalar', 'yaml_parser_load_scalar', 'yaml_emitter_analyze_anchor', 'yaml_emitter_state_machine', 'yaml_emitter_flush', 'yaml_stack_extend', 'yaml_parser_append_tag_directive']

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/yaml_write_handler.h ['libyaml_emitter_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml_emitter_fuzzer.c ['libyaml_emitter_fuzzer'] ['libyaml_emitter_fuzzer']
/src/libyaml/src/scanner.c ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml/src/dumper.c ['libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml_reformatter_alt_fuzzer.c ['libyaml_reformatter_alt_fuzzer'] ['libyaml_reformatter_alt_fuzzer']
/src/libyaml/src/reader.c ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml/src/parser.c ['libyaml_emitter_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_emitter_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml/src/emitter.c ['libyaml_emitter_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml/src/writer.c ['libyaml_emitter_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml_parser_fuzzer.c ['libyaml_parser_fuzzer'] ['libyaml_parser_fuzzer']
/src/libyaml_dumper_fuzzer.c ['libyaml_dumper_fuzzer'] ['libyaml_dumper_fuzzer']
/src/libyaml_loader_fuzzer.c ['libyaml_loader_fuzzer'] ['libyaml_loader_fuzzer']
/src/libyaml/src/api.c ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_emitter_fuzzer', 'libyaml_scanner_fuzzer', 'libyaml_parser_fuzzer', 'libyaml_loader_fuzzer', 'libyaml_deconstructor_fuzzer', 'libyaml_reformatter_fuzzer', 'libyaml_deconstructor_alt_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml_deconstructor_fuzzer.c ['libyaml_deconstructor_fuzzer'] ['libyaml_deconstructor_fuzzer']
/src/libyaml_deconstructor_alt_fuzzer.c ['libyaml_deconstructor_alt_fuzzer'] ['libyaml_deconstructor_alt_fuzzer']
/src/libyaml/src/loader.c ['libyaml_loader_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer'] ['libyaml_loader_fuzzer', 'libyaml_reformatter_alt_fuzzer', 'libyaml_dumper_fuzzer']
/src/libyaml_scanner_fuzzer.c ['libyaml_scanner_fuzzer'] ['libyaml_scanner_fuzzer']
/src/libyaml_reformatter_fuzzer.c ['libyaml_reformatter_fuzzer'] ['libyaml_reformatter_fuzzer']

Directories in report

Directory
/src/libyaml/src/
/src/