Fuzz introspector: fuzz_ds_patricia
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 0 60 ndpi_patricia_remove call site: 00077 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:899
0 0 None 0 20 ndpi_Clear_Patricia call site: 00120 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:339
0 0 None 0 0 ndpi_fill_prefix_v4 call site: 00019 /src/ndpi/src/lib/ndpi_main.c:2214
0 0 None 0 0 ndpi_fill_prefix_v6 call site: 00056 /src/ndpi/src/lib/ndpi_main.c:2229
0 0 1 :

['free']

0 0 ndpi_free call site: 00028 /src/ndpi/src/lib/ndpi_memory.c:80
0 0 None 0 0 ndpi_Deref_Prefix call site: 00041 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:282
0 0 None 0 0 ndpi_prefix_tochar call site: 00076 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:71
0 0 None 0 0 ndpi_prefix_tochar call site: 00076 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:77
0 0 None 0 0 ndpi_Ref_Prefix call site: 00024 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:268
0 0 None 0 0 ndpi_New_Prefix2 call site: 00026 /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:228

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz_set_alloc_callbacks_and_seed [function] [call site] 00001
2 fuzz_set_alloc_seed [function] [call site] 00002
1 ndpi_patricia_new [function] [call site] 00003
2 ndpi_calloc [function] [call site] 00004
3 ndpi_malloc [function] [call site] 00005
2 __assert_fail [call site] 00006
1 ndpi_patricia_get_maxbits [function] [call site] 00007
1 ndpi_patricia_process [function] [call site] 00008
2 __assert_fail [call site] 00009
1 process_ptree_data(_ndpi_prefix_t*, void*) [function] [call site] 00010
2 __assert_fail [call site] 00011
1 ndpi_patricia_walk_tree_inorder [function] [call site] 00012
2 ndpi_patricia_walk_inorder [function] [call site] 00013
3 __assert_fail [call site] 00014
3 ndpi_patricia_walk_inorder [function] [call site] 00015
4 ndpi_patricia_walk_inorder [function] [call site] 00016
1 process3_ptree_data(_ndpi_patricia_node_t*, void*, void*) [function] [call site] 00017
2 __assert_fail [call site] 00018
1 ndpi_fill_prefix_v4 [function] [call site] 00019
1 ndpi_patricia_lookup [function] [call site] 00020
2 __assert_fail [call site] 00021
2 __assert_fail [call site] 00022
2 ndpi_calloc [function] [call site] 00023
2 ndpi_Ref_Prefix [function] [call site] 00024
3 ndpi_New_Prefix2 [function] [call site] 00025
4 ndpi_calloc [function] [call site] 00026
4 ndpi_calloc [function] [call site] 00027
2 ndpi_free [function] [call site] 00028
2 __assert_fail [call site] 00029
2 __assert_fail [call site] 00030
2 __assert_fail [call site] 00031
2 ndpi_Ref_Prefix [function] [call site] 00032
2 __assert_fail [call site] 00033
2 ndpi_calloc [function] [call site] 00034
2 ndpi_Ref_Prefix [function] [call site] 00035
2 ndpi_free [function] [call site] 00036
2 __assert_fail [call site] 00037
2 __assert_fail [call site] 00038
2 __assert_fail [call site] 00039
2 ndpi_calloc [function] [call site] 00040
2 ndpi_Deref_Prefix [function] [call site] 00041
3 __assert_fail [call site] 00042
3 __assert_fail [call site] 00043
3 ndpi_DeleteEntry [function] [call site] 00044
4 ndpi_free [function] [call site] 00045
2 ndpi_DeleteEntry [function] [call site] 00046
2 __assert_fail [call site] 00047
1 ndpi_patricia_get_node_prefix [function] [call site] 00048
1 ndpi_patricia_get_node_bits [function] [call site] 00049
1 ndpi_patricia_set_node_data [function] [call site] 00050
1 ndpi_patricia_get_node_data [function] [call site] 00051
1 __assert_fail [call site] 00052
1 ndpi_patricia_set_node_u64 [function] [call site] 00053
1 ndpi_patricia_get_node_u64 [function] [call site] 00054
1 __assert_fail [call site] 00055
1 ndpi_fill_prefix_v6 [function] [call site] 00056
1 ndpi_patricia_lookup [function] [call site] 00057
1 ndpi_patricia_get_node_prefix [function] [call site] 00058
1 ndpi_patricia_get_node_bits [function] [call site] 00059
1 ndpi_patricia_set_node_data [function] [call site] 00060
1 ndpi_patricia_get_node_data [function] [call site] 00061
1 __assert_fail [call site] 00062
1 ndpi_patricia_set_node_u64 [function] [call site] 00063
1 ndpi_patricia_get_node_u64 [function] [call site] 00064
1 __assert_fail [call site] 00065
1 ndpi_patricia_process [function] [call site] 00066
1 process_ptree_data(_ndpi_prefix_t*, void*) [function] [call site] 00067
1 ndpi_patricia_walk_tree_inorder [function] [call site] 00068
1 process3_ptree_data(_ndpi_patricia_node_t*, void*, void*) [function] [call site] 00069
1 ndpi_fill_prefix_v4 [function] [call site] 00070
1 ndpi_patricia_search_exact [function] [call site] 00071
2 __assert_fail [call site] 00072
2 __assert_fail [call site] 00073
2 __assert_fail [call site] 00074
2 __assert_fail [call site] 00075
2 ndpi_prefix_tochar [function] [call site] 00076
1 ndpi_patricia_remove [function] [call site] 00077
2 __assert_fail [call site] 00078
2 ndpi_Deref_Prefix [function] [call site] 00079
2 ndpi_Deref_Prefix [function] [call site] 00080
2 ndpi_DeleteEntry [function] [call site] 00081
2 __assert_fail [call site] 00082
2 __assert_fail [call site] 00083
2 __assert_fail [call site] 00084
2 __assert_fail [call site] 00085
2 ndpi_DeleteEntry [function] [call site] 00086
2 __assert_fail [call site] 00087
2 ndpi_Deref_Prefix [function] [call site] 00088
2 ndpi_DeleteEntry [function] [call site] 00089
2 __assert_fail [call site] 00090
2 __assert_fail [call site] 00091
1 ndpi_fill_prefix_v6 [function] [call site] 00092
1 ndpi_patricia_search_exact [function] [call site] 00093
1 ndpi_patricia_remove [function] [call site] 00094
1 ndpi_patricia_search_exact [function] [call site] 00095
1 ndpi_fill_prefix_v4 [function] [call site] 00096
1 ndpi_patricia_search_best [function] [call site] 00097
2 ndpi_patricia_search_best2 [function] [call site] 00098
3 __assert_fail [call site] 00099
3 __assert_fail [call site] 00100
3 ndpi_prefix_tochar [function] [call site] 00101
3 ndpi_prefix_tochar [function] [call site] 00102
1 ndpi_patricia_remove [function] [call site] 00103
1 ndpi_fill_prefix_v6 [function] [call site] 00104
1 ndpi_patricia_search_best [function] [call site] 00105
1 ndpi_patricia_remove [function] [call site] 00106
1 ndpi_patricia_search_best [function] [call site] 00107
1 ndpi_patricia_clone [function] [call site] 00108
2 ndpi_patricia_new [function] [call site] 00109
2 ndpi_patricia_clone_walk [function] [call site] 00110
3 ndpi_patricia_clone_walk [function] [call site] 00111
4 ndpi_patricia_lookup [function] [call site] 00112
4 ndpi_patricia_clone_walk [function] [call site] 00113
1 ndpi_patricia_process [function] [call site] 00114
1 process_ptree_data(_ndpi_prefix_t*, void*) [function] [call site] 00115
1 ndpi_patricia_walk_tree_inorder [function] [call site] 00116
1 process3_ptree_data(_ndpi_patricia_node_t*, void*, void*) [function] [call site] 00117
1 ndpi_patricia_destroy [function] [call site] 00118
2 ndpi_Clear_Patricia [function] [call site] 00119
3 ndpi_Deref_Prefix [function] [call site] 00120
3 __assert_fail [call site] 00121
3 ndpi_DeleteEntry [function] [call site] 00122
3 __assert_fail [call site] 00123
2 ndpi_DeleteEntry [function] [call site] 00124
1 ndpi_patricia_destroy [function] [call site] 00125