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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 2 73 ndpi_match_string call site: 00093 /src/ndpi/src/lib/ndpi_main.c:3746
0 0 None 0 126 ac_automata_add call site: 00032 /src/ndpi/src/lib/third_party/src/ahocorasick.c:237
0 0 None 0 36 ac_automata_search call site: 00086 /src/ndpi/src/lib/third_party/src/ahocorasick.c:467
0 0 None 0 10 ac_automata_release call site: 00114 /src/ndpi/src/lib/third_party/src/ahocorasick.c:588
0 0 None 0 4 dump_node_header call site: 00000 /src/ndpi/src/lib/third_party/src/ahocorasick.c:637
0 0 None 0 2 ac_automata_walk call site: 00079 /src/ndpi/src/lib/third_party/src/ahocorasick.c:322
0 0 None 0 2 ac_automata_walk call site: 00080 /src/ndpi/src/lib/third_party/src/ahocorasick.c:338
0 0 1 :

['free']

0 0 ndpi_free call site: 00018 /src/ndpi/src/lib/ndpi_memory.c:80
0 0 None 0 0 ndpi_strdup call site: 00027 /src/ndpi/src/lib/ndpi_memory.c:108
0 0 None 0 0 ac_automata_add call site: 00032 /src/ndpi/src/lib/third_party/src/ahocorasick.c:243
0 0 None 0 0 node_create_next call site: 00039 /src/ndpi/src/lib/third_party/src/ahocorasick.c:1003

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz_set_alloc_callbacks_and_seed [function] [call site] 00001
2 fuzz_set_alloc_callbacks [function] [call site] 00002
3 set_ndpi_malloc [function] [call site] 00003
3 malloc_wrapper [function] [call site] 00004
3 set_ndpi_free [function] [call site] 00006
3 free_wrapper [function] [call site] 00007
2 fuzz_set_alloc_seed [function] [call site] 00008
1 ac_domain_match_handler [function] [call site] 00009
2 ndpi_is_middle_string_char [function] [call site] 00010
2 ndpi_is_middle_string_char [function] [call site] 00011
1 ac_automata_enable_debug [function] [call site] 00012
1 ac_automata_init [function] [call site] 00013
2 ndpi_calloc [function] [call site] 00014
3 ndpi_malloc [function] [call site] 00015
2 node_create [function] [call site] 00016
3 ndpi_calloc [function] [call site] 00017
2 ndpi_free [function] [call site] 00018
1 ndpi_init_automa [function] [call site] 00019
2 ac_automata_init [function] [call site] 00020
2 ac_domain_match_handler [function] [call site] 00021
1 ac_automata_feature [function] [call site] 00022
1 ac_automata_feature [function] [call site] 00023
1 ac_automata_feature [function] [call site] 00024
1 ac_automata_name [function] [call site] 00025
2 strncpy [call site] 00026
1 ndpi_strdup [function] [call site] 00027
2 strlen [call site] 00028
2 ndpi_malloc [function] [call site] 00029
1 strlen [call site] 00030
1 strlen [call site] 00031
1 ac_automata_add [function] [call site] 00032
2 node_find_next [function] [call site] 00033
3 edge_get_alpha [function] [call site] 00034
2 node_create_next [function] [call site] 00038
3 node_find_next [function] [call site] 00039
3 node_create [function] [call site] 00040
3 node_register_outgoing [function] [call site] 00041
4 node_resize_outgoing [function] [call site] 00042
5 edge_data_size [function] [call site] 00043
5 ndpi_calloc [function] [call site] 00044
5 edge_data_size [function] [call site] 00045
5 ndpi_calloc [function] [call site] 00046
5 edge_get_alpha [function] [call site] 00047
5 ndpi_free [function] [call site] 00048
4 edge_get_alpha [function] [call site] 00049
4 node_resize_outgoing [function] [call site] 00050
4 edge_get_alpha [function] [call site] 00051
3 node_release [function] [call site] 00052
4 node_release_pattern [function] [call site] 00053
5 ndpi_free [function] [call site] 00054
4 ndpi_free [function] [call site] 00055
4 ndpi_free [function] [call site] 00056
4 ndpi_free [function] [call site] 00057
2 node_register_matchstr [function] [call site] 00058
3 node_has_matchstr [function] [call site] 00059
4 memcmp [call site] 00060
3 node_resize_mp [function] [call site] 00061
4 mp_data_size [function] [call site] 00062
4 ndpi_calloc [function] [call site] 00063
4 mp_data_size [function] [call site] 00064
4 ndpi_malloc [function] [call site] 00065
4 mp_data_size [function] [call site] 00066
4 ndpi_free [function] [call site] 00067
3 node_resize_mp [function] [call site] 00068
1 ndpi_free [function] [call site] 00069
1 ndpi_strdup [function] [call site] 00070
1 ndpi_strdup [function] [call site] 00071
1 ndpi_add_string_to_automa [function] [call site] 00072
2 ndpi_add_string_value_to_automa [function] [call site] 00073
3 strlen [call site] 00074
3 ac_automata_add [function] [call site] 00075
1 ndpi_free [function] [call site] 00076
1 ac_automata_finalize [function] [call site] 00077
2 ac_automata_traverse_setfailure [function] [call site] 00078
3 ac_automata_walk [function] [call site] 00079
4 edge_get_alpha [function] [call site] 00080
2 ac_automata_walk [function] [call site] 00081
1 ndpi_finalize_automa [function] [call site] 00082
2 ac_automata_finalize [function] [call site] 00083
1 ndpi_strdup [function] [call site] 00084
1 strlen [call site] 00085
1 ac_automata_search [function] [call site] 00086
2 node_findbs_next_ac [function] [call site] 00087
3 node_findbs_next [function] [call site] 00088
3 node_findbs_next [function] [call site] 00090
2 ac_automata_exact_match [function] [call site] 00091
1 ndpi_free [function] [call site] 00092
1 ndpi_match_string [function] [call site] 00093
2 strlen [call site] 00094
2 ndpi_match_string_common [function] [call site] 00095
3 ac_automata_search [function] [call site] 00096
1 strlen [call site] 00097
1 ndpi_match_string_protocol_id [function] [call site] 00098
2 ndpi_match_string_common [function] [call site] 00099
1 strlen [call site] 00100
1 ac_automata_search [function] [call site] 00101
1 ndpi_match_string [function] [call site] 00102
1 strlen [call site] 00103
1 ndpi_match_string_protocol_id [function] [call site] 00104
1 ndpi_free [function] [call site] 00105
1 ac_automata_dump [function] [call site] 00106
2 fprintf [call site] 00107
2 ndpi_malloc [function] [call site] 00108
2 ac_automata_walk [function] [call site] 00109
2 fprintf [call site] 00110
2 ndpi_free [function] [call site] 00111
1 ac_automata_get_stats [function] [call site] 00112
1 ac_automata_release [function] [call site] 00113
2 ac_automata_walk [function] [call site] 00114
2 node_release [function] [call site] 00115
2 ndpi_free [function] [call site] 00116
2 ndpi_free [function] [call site] 00117
2 ndpi_free [function] [call site] 00118
1 ndpi_free_automa [function] [call site] 00119
2 ac_automata_release [function] [call site] 00120