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

Fuzzer details

Fuzzer: lyd_parse_mem_xml

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 5998 69.0%
gold [1:9] 70 0.80%
yellow [10:29] 28 0.32%
greenyellow [30:49] 10 0.11%
lawngreen 50+ 2575 29.6%
All colors 8681 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
65978 133451 12 :

['lysc_unres_must_free', 'lys_compile_unres_leafref', 'lysc_unres_dflt_free', 'lys_compile_unres_when', 'lys_compile_unres_leaf_dlft', 'free', 'lys_compile_unres_when_implement', 'lysc_type_free', 'ly_set_rm_index', 'lys_compile_unres_must', 'lys_compile_unres_disabled_bitenum', 'lys_compile_unres_llist_dflts']

66441 187201 lys_compile_unres_depset call site: 08604 /src/libyang/src/schema_compile.c:1321
32988 32992 3 :

['set_scnode_clear_ctx', 'moveto_attr', 'moveto_attr_alldesc']

32988 66490 eval_name_test_with_predicate call site: 07637 /src/libyang/src/xpath.c:8086
32979 32979 2 :

['lyd_validate_autodel_node_del', 'lys_getnext_data']

32979 32979 lyd_validate_autodel_case_dflt call site: 06787 /src/libyang/src/validation.c:733
16505 16505 1 :

['lydxml_subtree_any']

49828 133417 lydxml_subtree_r call site: 05958 /src/libyang/src/parser_xml.c:1004
16505 16505 1 :

['lys_compile_node_list_unique']

16505 65961 lys_compile_node_list call site: 05278 /src/libyang/src/schema_compile_node.c:3492
16504 16504 1 :

['lyd_insert_after']

16504 17144 lydxml_subtree_r call site: 05958 /src/libyang/src/parser_xml.c:1045
16503 16503 1 :

['lys_compile_must']

16507 16823 lys_compile_ext_instance_stmt call site: 00000 /src/libyang/src/plugins_exts.c:116
16502 16505 2 :

['lyd_parent', 'lyd_find_schema_ctx']

32989 98980 lyd_find_sibling_val call site: 00867 /src/libyang/src/tree_data.c:2679
16496 16496 1 :

['lydxml_attrs']

82816 199429 lydxml_subtree_r call site: 05900 /src/libyang/src/parser_xml.c:986
16495 16495 1 :

['moveto_scnode_alldesc_child']

32984 66482 eval_name_test_with_predicate call site: 07700 /src/libyang/src/xpath.c:8116
16495 16495 1 :

['moveto_node_alldesc_child']

16495 49993 eval_name_test_with_predicate call site: 07718 /src/libyang/src/xpath.c:8152
16495 16495 2 :

['lyd_child.289', 'lyd_compare_siblings_']

16495 16495 lyd_compare_single_data call site: 01005 /src/libyang/src/tree_data.c:1367

Runtime coverage analysis

Covered functions
606
Functions that are reachable but not covered
642
Reachable functions
1179
Percentage of reachable functions covered
45.55%
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
build/../tests/fuzz/lyd_parse_mem_xml.c 1
src/log.c 23
src/context.c 24
src/hash_table.c 20
src/dict.c 7
src/plugins.c 7
src/set.c 11
src/in.c 7
src/tree_schema.c 28
src/parser_yin.c 76
src/xml.c 25
src/tree_schema_common.c 55
src/tree_data.c 49
src/tree_data.h 3
src/tree_data_common.c 32
src/common.c 14
src/plugins_exts.c 6
src/plugins_exts/schema_mount.c 3
src/path.c 17
src/xpath.c 159
compat/compat.c 1
src/plugins_types.c 16
src/tree_schema_free.c 49
src/tree_data_new.c 15
src/tree_data_hash.c 5
src/tree_data_free.c 11
src/parser_lyb.c 39
src/parser_yang.c 60
src/parser_common.c 8
src/schema_features.c 15
src/schema_compile.c 33
src/schema_compile_amend.c 41
src/schema_compile_node.c 53
src/parser_xml.c 14
src/parser_json.c 22
src/json.c 21
src/lyb.c 5
src/validation.c 27
src/diff.c 17
src/plugins_exts/metadata.h 1
src/out.c 9
src/printer_data.c 2
src/printer_xml.c 13
src/printer_json.c 24
src/printer_lyb.c 31

Fuzzer: lys_parse_mem

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 6309 72.6%
gold [1:9] 137 1.57%
yellow [10:29] 100 1.15%
greenyellow [30:49] 34 0.39%
lawngreen 50+ 2100 24.1%
All colors 8680 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
65978 133451 12 :

['lysc_unres_must_free', 'lys_compile_unres_leafref', 'lysc_unres_dflt_free', 'lys_compile_unres_when', 'lys_compile_unres_leaf_dlft', 'free', 'lys_compile_unres_when_implement', 'lysc_type_free', 'ly_set_rm_index', 'lys_compile_unres_must', 'lys_compile_unres_disabled_bitenum', 'lys_compile_unres_llist_dflts']

66441 187201 lys_compile_unres_depset call site: 08605 /src/libyang/src/schema_compile.c:1321
16505 16505 1 :

['lys_compile_node_list_unique']

16505 65961 lys_compile_node_list call site: 05279 /src/libyang/src/schema_compile_node.c:3492
16503 16503 1 :

['lys_compile_must']

16507 16823 lys_compile_ext_instance_stmt call site: 00000 /src/libyang/src/plugins_exts.c:116
16494 16497 2 :

['lysc_data_node', 'lys_compile_when']

16498 50485 lys_compile_node_ call site: 05083 /src/libyang/src/schema_compile_node.c:2698
16494 16494 1 :

['lys_compile_when']

16494 16505 lys_compile_ext_instance_stmt call site: 00000 /src/libyang/src/plugins_exts.c:116
16491 33352 5 :

['reparse_or_expr', 'lyxp_expr_free', 'ly_vlog', 'ly_log', 'calloc']

16491 33557 lyxp_expr_parse call site: 00381 /src/libyang/src/xpath.c:3154
756 759 4 :

['lyd_path', 'lysc_data_node', 'ly_vlog_build_path_append', 'lyd_path_set']

756 1707 ly_vlog_build_path call site: 00147 /src/libyang/src/log.c:717
400 558 5 :

['ly_ctx_set_searchdir', 'strdup', 'strchr', 'ly_log', 'free']

400 51495 ly_ctx_new call site: 00094 /src/libyang/src/context.c:274
270 270 1 :

['lysc_unres_llist_dflts_add']

270 49722 lys_compile_node_leaflist call site: 04713 /src/libyang/src/schema_compile_node.c:3037
265 265 1 :

['lysc_ident_derived_unlink']

265 3050 lys_module_free call site: 03945 /src/libyang/src/tree_schema_free.c:1313
206 206 1 :

['lysp_yin_ctx_free']

206 206 lys_parse_in call site: 03690 /src/libyang/src/tree_schema.c:1931
171 171 1 :

['lysc_patterns_dup']

179 34957 lys_compile_type_patterns call site: 04600 /src/libyang/src/schema_compile_node.c:1375

Runtime coverage analysis

Covered functions
366
Functions that are reachable but not covered
834
Reachable functions
1179
Percentage of reachable functions covered
29.26%
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
build/../tests/fuzz/lys_parse_mem.c 1
src/log.c 23
src/context.c 24
src/hash_table.c 20
src/dict.c 7
src/plugins.c 7
src/set.c 11
src/in.c 7
src/tree_schema.c 28
src/parser_yin.c 76
src/xml.c 25
src/tree_schema_common.c 55
src/tree_data.c 49
src/tree_data.h 3
src/tree_data_common.c 32
src/common.c 14
src/plugins_exts.c 6
src/plugins_exts/schema_mount.c 3
src/path.c 17
src/xpath.c 159
compat/compat.c 1
src/plugins_types.c 16
src/tree_schema_free.c 49
src/tree_data_new.c 15
src/tree_data_hash.c 5
src/tree_data_free.c 11
src/parser_lyb.c 39
src/parser_yang.c 60
src/parser_common.c 8
src/schema_features.c 15
src/schema_compile.c 33
src/schema_compile_amend.c 41
src/schema_compile_node.c 53
src/parser_xml.c 14
src/parser_json.c 22
src/json.c 21
src/lyb.c 5
src/validation.c 27
src/diff.c 17
src/plugins_exts/metadata.h 1
src/out.c 9
src/printer_data.c 2
src/printer_xml.c 13
src/printer_json.c 24
src/printer_lyb.c 31

Fuzzer: lyd_parse_mem_json

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 6017 69.3%
gold [1:9] 154 1.77%
yellow [10:29] 157 1.80%
greenyellow [30:49] 63 0.72%
lawngreen 50+ 2290 26.3%
All colors 8681 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
65978 133451 12 :

['lysc_unres_must_free', 'lys_compile_unres_leafref', 'lysc_unres_dflt_free', 'lys_compile_unres_when', 'lys_compile_unres_leaf_dlft', 'free', 'lys_compile_unres_when_implement', 'lysc_type_free', 'ly_set_rm_index', 'lys_compile_unres_must', 'lys_compile_unres_disabled_bitenum', 'lys_compile_unres_llist_dflts']

66441 187201 lys_compile_unres_depset call site: 08604 /src/libyang/src/schema_compile.c:1321
32999 32999 2 :

['lydjson_check_list', 'ly_value_validate']

32999 49494 lydjson_data_check_opaq call site: 06220 /src/libyang/src/parser_json.c:516
32988 32992 3 :

['set_scnode_clear_ctx', 'moveto_attr', 'moveto_attr_alldesc']

32988 66490 eval_name_test_with_predicate call site: 07637 /src/libyang/src/xpath.c:8086
16512 16512 1 :

['lydjson_parse_any']

16671 17339 lydjson_parse_instance call site: 06244 /src/libyang/src/parser_json.c:1475
16507 16507 1 :

['moveto_node_hash_child']

16507 50005 eval_name_test_with_predicate call site: 07727 /src/libyang/src/xpath.c:8155
16505 16505 1 :

['lys_compile_node_list_unique']

16505 65961 lys_compile_node_list call site: 05278 /src/libyang/src/schema_compile_node.c:3492
16505 16505 1 :

['moveto_scnode']

16505 16505 xpath_pi_node call site: 05528 /src/libyang/src/xpath.c:5503
16503 16503 1 :

['lys_compile_must']

16507 16823 lys_compile_ext_instance_stmt call site: 00000 /src/libyang/src/plugins_exts.c:116
16502 16505 2 :

['lyd_parent', 'lyd_find_schema_ctx']

32989 98980 lyd_find_sibling_val call site: 00867 /src/libyang/src/tree_data.c:2679
16495 16495 1 :

['moveto_node_alldesc_child']

16495 49993 eval_name_test_with_predicate call site: 07718 /src/libyang/src/xpath.c:8152
16495 16495 2 :

['lyd_child.289', 'lyd_compare_siblings_']

16495 16495 lyd_compare_single_data call site: 01005 /src/libyang/src/tree_data.c:1367
16494 16497 2 :

['lysc_data_node', 'lys_compile_when']

16498 50485 lys_compile_node_ call site: 05082 /src/libyang/src/schema_compile_node.c:2698

Runtime coverage analysis

Covered functions
624
Functions that are reachable but not covered
627
Reachable functions
1179
Percentage of reachable functions covered
46.82%
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
build/../tests/fuzz/lyd_parse_mem_json.c 1
src/log.c 23
src/context.c 24
src/hash_table.c 20
src/dict.c 7
src/plugins.c 7
src/set.c 11
src/in.c 7
src/tree_schema.c 28
src/parser_yin.c 76
src/xml.c 25
src/tree_schema_common.c 55
src/tree_data.c 49
src/tree_data.h 3
src/tree_data_common.c 32
src/common.c 14
src/plugins_exts.c 6
src/plugins_exts/schema_mount.c 3
src/path.c 17
src/xpath.c 159
compat/compat.c 1
src/plugins_types.c 16
src/tree_schema_free.c 49
src/tree_data_new.c 15
src/tree_data_hash.c 5
src/tree_data_free.c 11
src/parser_lyb.c 39
src/parser_yang.c 60
src/parser_common.c 8
src/schema_features.c 15
src/schema_compile.c 33
src/schema_compile_amend.c 41
src/schema_compile_node.c 53
src/parser_xml.c 14
src/parser_json.c 22
src/json.c 21
src/lyb.c 5
src/validation.c 27
src/diff.c 17
src/plugins_exts/metadata.h 1
src/out.c 9
src/printer_data.c 2
src/printer_xml.c 13
src/printer_json.c 24
src/printer_lyb.c 31

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
structure_aug_parse /src/libyang/src/plugins_exts/structure.c 2 ['struct.lysp_ctx *', 'struct.lysp_ext_instance.2859 *'] 439 0 596 37 15 1228 0 17452 972
yang_print_parsed_submodule /src/libyang/src/printer_yang.c 3 ['struct.ly_out *', 'struct.lysp_submodule *', 'int '] 14 0 455 54 20 100 0 882 525
lyd_parse_ext_op /src/libyang/src/tree_data.c 7 ['struct.lysc_ext_instance *', 'struct.lyd_node *', 'struct.ly_in *', 'int ', 'int ', 'struct.lyd_node **', 'struct.lyd_node **'] 89 0 124 20 9 1186 0 16773 293
schema_mount_validate /src/libyang/src/plugins_exts/schema_mount.c 6 ['struct.lysc_ext_instance *', 'struct.lyd_node *', 'struct.lyd_node *', 'int ', 'int ', 'struct.lyd_node **'] 438 0 535 86 31 1187 0 16750 270
lyd_diff_siblings_r /src/libyang/src/diff.c 5 ['struct.lyd_node *', 'struct.lyd_node *', 'N/A', 'char ', 'struct.lyd_node **'] 556 0 841 152 49 1179 4 16745 265
yang_print_compiled /src/libyang/src/printer_yang.c 3 ['struct.ly_out *', 'struct.lys_module *', 'int '] 566 0 889 111 38 1213 0 16879 224
ly_ctx_get_yanglib_data /src/libyang/src/context.c 3 ['struct.ly_ctx *', 'struct.lyd_node **', 'char *'] 46 0 715 113 48 1182 0 16701 202
lyd_diff_apply_r /src/libyang/src/diff.c 6 ['struct.lyd_node **', 'struct.lyd_node *', 'struct.lyd_node *', 'func_type *', 'char *', 'struct.ly_ht **'] 557 0 922 145 52 1177 3 16669 189
lyd_new_ext_path /src/libyang/src/tree_data_new.c 6 ['struct.lyd_node *', 'struct.lysc_ext_instance *', 'char *', 'char *', 'int ', 'struct.lyd_node **'] 124 0 264 49 20 1177 0 16659 179
schema_mount_sprinter_ctree /src/libyang/src/plugins_exts/schema_mount.c 4 ['struct.lysc_ext_instance *', 'struct.lyspr_tree_ctx *', 'char **', 'char **'] 439 0 509 80 30 1189 0 16632 148

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
80.0%
1308 / 1635
Cyclomatic complexity statically reachable by fuzzers
87.0%
19540 / 22362

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth 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

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
log_vprintf 63 30 47.61% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_parser_find_operation 36 6 16.66% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_parser_check_schema 51 13 25.49% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_parse_set_data_flags 41 9 21.95% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_parser_fill_filepath 33 14 42.42% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_parse_ext_instance_stmt 122 39 31.96% []
lysp_stmt_parse 207 26 12.56% []
lysp_stmt_type_enum 44 18 40.90% []
lysp_stmt_type 79 30 37.97% []
lydxml_data_check_opaq 37 6 16.21% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
ly_path_compile_predicate 129 63 48.83% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_ext_instance_stmt 176 34 19.31% []
lyplg_type_resolve_leafref 69 33 47.82% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyplg_type_resolve_leafref_get_target_path 46 24 52.17% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyplg_type_store_bits 54 28 51.85% []
lyplg_type_store_enum 64 28 43.75% []
identityref_check_base 34 14 41.17% []
lyplg_type_print_uint 46 19 41.30% []
lys_compile 89 46 51.68% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_identity_circular_check 35 8 22.85% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_unres_mod 41 11 26.82% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_precompile_uses_augments_refines 64 18 28.12% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lysp_dev_node_free 46 4 8.695% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_node_deviations_refines 52 14 26.92% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_node_augments 50 14 28.00% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_precompile_own_deviations 50 12 24.0% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_precompile_augments_deviations 38 15 39.47% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_precompile_mod_augments_deviations 61 22 36.06% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_type_range 195 61 31.28% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_type_enums 128 63 49.21% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_node_connect 97 52 53.60% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_type_ 298 136 45.63% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lysc_unres_must_add 34 13 38.23% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_node_list 137 60 43.79% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_node_leaflist 42 23 54.76% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_set_features 46 10 21.73% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_compile_iffeature 154 67 43.50% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_find_sibling_first 65 29 44.61% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_find_sibling_val 43 21 48.83% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_compare_single_data 101 44 43.56% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_compare_single_value 52 23 44.23% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_first_module_sibling 40 18 45.0% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_free_meta 34 5 14.70% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_new_implicit_r 108 45 41.66% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
_lys_set_implemented 39 16 41.02% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_parse_in 147 80 54.42% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_search_localfile 151 73 48.34% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_getnext_ 164 82 50.0% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_unres_dep_sets_create_mod_r 66 35 53.03% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lysp_load_submodules 71 6 8.450% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lysp_ext_instance_resolve_argument 48 5 10.41% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lysp_check_dup_typedef 49 18 36.73% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_parse_localfile 36 13 36.11% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyplg_ext_pfree_instance_substatements 139 40 28.77% []
lyplg_ext_cfree_instance_substatements 131 34 25.95% []
lyd_validate_unres 60 31 51.66% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_validate_unres_when 55 8 14.54% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_validate_must 65 17 26.15% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyd_validate_minmax 55 18 32.72% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyxp_set_cast 112 24 21.42% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
reparse_relative_location_path 57 30 52.63% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
reparse_function_call 181 33 18.23% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
eval_expr_select 48 25 52.08% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_op_comp 75 29 38.66% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
set_comp_canonize 36 14 38.88% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
print_set_debug 101 8 7.920% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
set_sort_compare 40 8 20.0% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
eval_relative_location_path 98 52 53.06% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_axis_scnode_next 102 32 31.37% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_axis_scnode_next_first 66 30 45.45% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_scnode_check 39 16 41.02% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_axis_node_next 67 19 28.35% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_axis_node_next_first 73 27 36.98% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
moveto_resolve_model 40 17 42.5% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
eval_function_call 188 43 22.87% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
eval_predicate 112 51 45.53% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
cast_string_recursive 108 27 25.0% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_unres_glob_revert 36 10 27.77% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyjson_token2str 33 6 18.18% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
log_store 57 23 40.35% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lydjson_metadata 136 70 51.47% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lydjson_value_type_hint 31 15 48.38% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lydjson_data_check_opaq 33 17 51.51% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
ly_path_eval_partial 75 31 41.33% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lyplg_type_store_instanceid_keys 67 31 46.26% []
ly_dup_prefix_data 56 17 30.35% ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
lys_datatype2str 44 8 18.18% []

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/libyang/src/validation.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/compat/compat.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/set.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/tree_data.h ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/xpath.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/build/../tests/fuzz/lys_parse_mem.c ['lys_parse_mem'] []
/src/libyang/src/plugins_exts.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/leafref.c [] []
/src/libyang/src/plugins_types/ipv4_address_no_zone.c [] []
/src/libyang/src/plugins_exts/structure.c [] []
/src/libyang/src/log.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/instanceid_keys.c [] []
/src/libyang/src/hash_table.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/schema_features.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/integer.c [] []
/src/libyang/src/plugins_types/binary.c [] []
/src/libyang/src/printer_yang.c [] []
/src/libyang/src/lyb.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/diff.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/tree_data_hash.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/ipv4_address.c [] []
/src/libyang/src/plugins_types/ipv6_address_no_zone.c [] []
/src/libyang/src/plugins_types/boolean.c [] []
/src/libyang/src/tree_data_common.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/bits.c [] []
/src/libyang/src/parser_xml.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml']
/src/libyang/src/tree_schema.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/ipv6_prefix.c [] []
/src/libyang/src/schema_compile_amend.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/build/../tests/fuzz/lyd_parse_mem_json.c ['lyd_parse_mem_json'] []
/src/libyang/src/parser_yang.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/tree_schema_free.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/empty.c [] []
/src/libyang/src/plugins_types/string.c [] []
/src/libyang/src/plugins_types/ipv4_prefix.c [] []
/src/libyang/src/parser_yin.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/plugins_types/identityref.c [] []
/src/libyang/src/plugins_types/enumeration.c [] []
/src/libyang/src/common.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/tree_data.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/src/plugins_exts/schema_mount.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/context.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/tree_data_free.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/date_and_time.c [] []
/src/libyang/src/out.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/schema_compile.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/path.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_exts/nacm.c [] []
/src/libyang/src/in.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/parser_lyb.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/plugins_types/instanceid.c [] []
/src/libyang/src/xml.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml']
/src/libyang/src/plugins_types/node_instanceid.c [] []
/src/libyang/src/schema_compile_node.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/printer_lyb.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/tree_schema_common.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/plugins_types/decimal64.c [] []
/src/libyang/src/plugins_types/xpath1.0.c [] []
/src/libyang/src/dict.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/parser_json.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_json']
/src/libyang/src/plugins_exts/metadata.h ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/plugins_exts/metadata.c [] []
/src/libyang/src/printer_xml.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/plugins_exts/yangdata.c [] []
/src/libyang/src/plugins_types/union.c [] []
/src/libyang/src/plugins_types/ipv6_address.c [] []
/src/libyang/src/json.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_json']
/src/libyang/src/printer_data.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/src/tree_data_new.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lyd_parse_mem_json']
/src/libyang/src/parser_common.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json']
/src/libyang/src/printer_json.c ['lyd_parse_mem_xml', 'lys_parse_mem', 'lyd_parse_mem_json'] []
/src/libyang/build/../tests/fuzz/lyd_parse_mem_xml.c ['lyd_parse_mem_xml'] []

Directories in report

Directory
/src/libyang/src/
/src/libyang/src/plugins_exts/
/src/libyang/src/plugins_types/
/src/libyang/build/../tests/fuzz/
/src/libyang/compat/