Fuzz introspector: libidn2_register_fuzzer
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
240 240 5 :

['utf8conv_carefully', 'abort', 'u8_mbtouc_unsafe', 'u8_prev', 'iconv_carefully_1']

318 362 mem_cd_iconveh_internal call site: 00053 /src/libidn2/unistring/striconveh.c:521
71 244 10 :

['_idn2_bidi', '_idn2_unassigned_p', '_idn2_contexto_p', '_idn2_contexto_with_rule', 'get_idna_map', '_idn2_contexto_rule', 'map_is', '_idn2_contextj_p', '_idn2_disallowed_p', '_idn2_contextj_rule']

71 244 _idn2_label_test call site: 00220 /src/libidn2/lib/idna.c:180
29 39 2 :

['_idn2_contexto_p', '_idn2_contexto_with_rule']

52 149 _idn2_label_test call site: 00242 /src/libidn2/lib/idna.c:224
23 23 2 :

['get_idna_map', 'map_is']

23 23 _idn2_label_test call site: 00261 /src/libidn2/lib/idna.c:261
6 6 2 :

['malloc', '__errno_location']

8 20 u32_normalize call site: 00202 /src/libidn2/unistring/uninorm/u-normalize-internal.h:339
2 10 2 :

['rpl_free', 'iconv']

12 20 mem_cd_iconveh_internal call site: 00057 /src/libidn2/unistring/striconveh.c:559
2 2 1 :

['abort']

2 2 freea call site: 00133 /src/libidn2/gl/malloca.c:93
2 2 1 :

['__errno_location']

2 2 _idn2_label_test call site: 00214 /src/libidn2/lib/idna.c:144
2 2 1 :

['realloc']

2 2 mem_cd_iconveh_internal call site: 00108 /src/libidn2/unistring/striconveh.c:1027
2 2 1 :

['__errno_location']

2 2 mem_cd_iconveh_internal call site: 00108 /src/libidn2/unistring/striconveh.c:1038
2 2 2 :

['malloc', '__errno_location']

2 2 u8_conv_from_encoding call site: 00016 /src/libidn2/unistring/uniconv/u8-conv-from-enc.c:94
2 2 1 :

['abort']

2 2 uc_canonical_decomposition call site: 00000 /src/libidn2/unistring/uninorm/canonical-decomposition.c:88

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 idn2_register_ul [function] [call site] 00002
2 locale_charset [function] [call site] 00003
3 nl_langinfo [call site] 00004
2 u8_strconv_from_encoding [function] [call site] 00005
3 strlen [call site] 00006
3 u8_conv_from_encoding [function] [call site] 00007
4 c_strcasecmp [function] [call site] 00008
4 __errno_location [call site] 00012
4 abort [call site] 00014
4 __errno_location [call site] 00015
4 mem_iconveha [function] [call site] 00016
5 strlen [call site] 00017
5 mem_iconveha_notranslit [function] [call site] 00019
6 mem_iconveh [function] [call site] 00020
7 c_strcasecmp [function] [call site] 00021
7 __errno_location [call site] 00022
7 iconveh_open [function] [call site] 00023
8 iconv_open [call site] 00024
8 c_strcasecmp [function] [call site] 00025
8 iconv_open [call site] 00026
8 __errno_location [call site] 00027
8 __errno_location [call site] 00028
8 c_strcasecmp [function] [call site] 00029
8 c_strcasecmp [function] [call site] 00030
8 iconv_open [call site] 00031
8 __errno_location [call site] 00032
8 iconv_close [call site] 00033
8 iconv_close [call site] 00034
8 __errno_location [call site] 00035
7 mem_cd_iconveh [function] [call site] 00036
8 mem_cd_iconveh_internal [function] [call site] 00037
9 iconv [call site] 00038
9 iconv_carefully_1 [function] [call site] 00039
10 iconv [call site] 00040
10 __errno_location [call site] 00041
9 iconv [call site] 00042
9 __errno_location [call site] 00043
9 __errno_location [call site] 00044
9 __errno_location [call site] 00045
9 abort [call site] 00046
9 realloc [call site] 00047
9 rpl_free [function] [call site] 00048
10 __errno_location [call site] 00049
10 __errno_location [call site] 00050
9 __errno_location [call site] 00051
9 abort [call site] 00052
9 realloc [call site] 00054
9 __errno_location [call site] 00056
9 iconv [call site] 00057
9 __errno_location [call site] 00058
9 realloc [call site] 00059
9 __errno_location [call site] 00061
9 iconv [call site] 00063
9 iconv [call site] 00064
9 iconv_carefully_1 [function] [call site] 00065
9 iconv [call site] 00066
9 utf8conv_carefully [function] [call site] 00067
10 u8_mbtoucr [function] [call site] 00068
10 __errno_location [call site] 00069
10 u8_mbtouc [function] [call site] 00070
10 __errno_location [call site] 00071
10 u8_uctomb [function] [call site] 00072
10 __errno_location [call site] 00073
10 __errno_location [call site] 00074
9 iconv [call site] 00075
9 __errno_location [call site] 00076
9 __errno_location [call site] 00078
9 abort [call site] 00079
9 __errno_location [call site] 00080
9 iconv [call site] 00081
9 utf8conv_carefully [function] [call site] 00082
9 iconv [call site] 00083
9 __errno_location [call site] 00084
9 __errno_location [call site] 00085
9 __errno_location [call site] 00086
9 abort [call site] 00088
9 abort [call site] 00089
9 u8_mbtouc_unsafe [function] [call site] 00090
9 iconv [call site] 00091
9 __errno_location [call site] 00092
9 iconv [call site] 00093
9 __errno_location [call site] 00094
9 __errno_location [call site] 00095
9 abort [call site] 00096
9 realloc [call site] 00097
9 __errno_location [call site] 00099
9 iconv [call site] 00100
9 abort [call site] 00101
9 realloc [call site] 00104
9 __errno_location [call site] 00106
9 __errno_location [call site] 00108
9 __errno_location [call site] 00109
9 realloc [call site] 00110
7 __errno_location [call site] 00111
7 iconveh_close [function] [call site] 00112
8 iconv_close [call site] 00113
8 __errno_location [call site] 00114
8 iconv_close [call site] 00115
8 iconv_close [call site] 00116
8 __errno_location [call site] 00117
8 iconv_close [call site] 00118
8 __errno_location [call site] 00119
8 iconv_close [call site] 00120
8 __errno_location [call site] 00121
8 iconv_close [call site] 00122
7 __errno_location [call site] 00123
7 iconveh_close [function] [call site] 00124
6 __errno_location [call site] 00126
6 strcmp [call site] 00127
6 mem_iconveha_notranslit [function] [call site] 00128
7 __errno_location [call site] 00129
7 mem_iconveha_notranslit [function] [call site] 00130
8 __errno_location [call site] 00131
8 __errno_location [call site] 00132
5 mem_iconveha_notranslit [function] [call site] 00134
3 u8_strlen [function] [call site] 00135
4 strlen [call site] 00136
3 __errno_location [call site] 00138
2 __errno_location [call site] 00139
2 idn2_register_u8 [function] [call site] 00140
3 strlen [call site] 00141
3 _idn2_ascii_p [function] [call site] 00142
3 _idn2_punycode_decode_internal [function] [call site] 00143
3 u32_to_u8 [function] [call site] 00146
4 u8_uctomb [function] [call site] 00147
4 __errno_location [call site] 00149
4 realloc [call site] 00150
4 __errno_location [call site] 00152
4 u8_uctomb [function] [call site] 00153
4 abort [call site] 00154
4 __errno_location [call site] 00155
3 strcmp [call site] 00156
3 idn2_register_u8 [function] [call site] 00157
4 strdup [call site] 00159
4 u8_strlen [function] [call site] 00160
4 _idn2_ascii_p [function] [call site] 00161
4 strdup [call site] 00162
4 _idn2_u8_to_u32_nfc [function] [call site] 00163
5 u8_to_u32 [function] [call site] 00164
6 u8_mbtoucr [function] [call site] 00165
6 __errno_location [call site] 00167
6 realloc [call site] 00168
6 __errno_location [call site] 00170
6 __errno_location [call site] 00171
5 __errno_location [call site] 00172
5 _isNFC [function] [call site] 00173
6 uc_combining_class [function] [call site] 00174
6 get_nfcqc_map [function] [call site] 00175
7 _compare_nfcqc_map [function] [call site] 00176
5 u32_normalize [function] [call site] 00177
6 u32_mbtouc_unsafe [function] [call site] 00178
6 abort [call site] 00179
6 abort [call site] 00180
6 uc_combining_class [function] [call site] 00181
6 gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00182
7 gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00183
8 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00184
9 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00185
10 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00186
6 u32_uctomb [function] [call site] 00189
6 __errno_location [call site] 00190
6 abort [call site] 00191
6 __errno_location [call site] 00192
6 __errno_location [call site] 00193
6 realloc [call site] 00195
6 __errno_location [call site] 00196
6 u32_uctomb [function] [call site] 00197
6 __errno_location [call site] 00198
6 abort [call site] 00199
6 abort [call site] 00200
6 __errno_location [call site] 00201
6 __errno_location [call site] 00203
6 realloc [call site] 00204
6 abort [call site] 00205
6 __errno_location [call site] 00207
6 __errno_location [call site] 00210
5 __errno_location [call site] 00212
4 _idn2_label_test [function] [call site] 00213
5 u32_normalize [function] [call site] 00214
5 __errno_location [call site] 00215
5 memcmp [call site] 00216
5 uc_is_general_category [function] [call site] 00218
6 bitmap_lookup [function] [call site] 00219
5 _idn2_disallowed_p [function] [call site] 00220
5 get_idna_map [function] [call site] 00223
6 bsearch [call site] 00224
6 _compare_idna_map [function] [call site] 00225
7 _fill_map [function] [call site] 00226
6 _compare_idna_map [function] [call site] 00227
6 _compare_idna_map [function] [call site] 00228
6 _fill_map [function] [call site] 00229
5 _idn2_contextj_p [function] [call site] 00232
5 _idn2_contextj_rule [function] [call site] 00234
6 _idn2_contextj_p [function] [call site] 00235
6 uc_combining_class [function] [call site] 00236
6 uc_joining_type [function] [call site] 00237
7 uc_is_general_category_withtable [function] [call site] 00238
8 lookup_withtable [function] [call site] 00239
6 uc_joining_type [function] [call site] 00240
6 uc_combining_class [function] [call site] 00241
5 _idn2_contexto_p [function] [call site] 00242
5 _idn2_contexto_p [function] [call site] 00244
5 _idn2_contexto_with_rule [function] [call site] 00245
5 _idn2_contexto_rule [function] [call site] 00246
6 _idn2_contexto_p [function] [call site] 00247
6 _uc_script_name [function] [call site] 00248
7 uc_script [function] [call site] 00249
6 strcmp [call site] 00250
6 _uc_script_name [function] [call site] 00251
6 strcmp [call site] 00252
6 _uc_script_name [function] [call site] 00253
6 strcmp [call site] 00254
6 _uc_script_name [function] [call site] 00255
6 strcmp [call site] 00256
6 _uc_script_name [function] [call site] 00257
6 strcmp [call site] 00258
5 _idn2_unassigned_p [function] [call site] 00259
5 _idn2_bidi [function] [call site] 00261
6 _isBidi [function] [call site] 00262
7 uc_bidi_category [function] [call site] 00263
8 uc_bidi_class [function] [call site] 00264
6 uc_bidi_category [function] [call site] 00265
6 uc_bidi_category [function] [call site] 00266
6 uc_bidi_category [function] [call site] 00267
5 get_idna_map [function] [call site] 00268
4 _idn2_punycode_encode_internal [function] [call site] 00274
5 encode_digit [function] [call site] 00275
5 encode_digit [function] [call site] 00276
4 strdup [call site] 00279
1 idn2_register_ul [function] [call site] 00283
1 idn2_register_ul [function] [call site] 00284
1 idn2_free [function] [call site] 00285
1 __assert_fail [call site] 00286
1 idn2_register_ul [function] [call site] 00287
1 idn2_free [function] [call site] 00288
1 idn2_register_ul [function] [call site] 00289