Fuzz introspector: libidn2_to_ascii_8z_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: 00249 /src/libidn2/unistring/striconveh.c:521
6 925 9 :

['__errno_location', 'u32_normalize', '_idn2_punycode_decode_internal', '_idn2_label_test', 'get_idna_map', 'map_is', 'u32_to_u8', 'malloc', 'get_map_data']

6 965 _tr46 call site: 00029 /src/libidn2/lib/lookup.c:292
6 6 1 :

['__errno_location']

6 14 u32_normalize call site: 00076 /src/libidn2/unistring/uninorm/u-normalize-internal.h:345
2 10 2 :

['rpl_free', 'iconv']

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

['abort']

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

['__errno_location']

2 2 _idn2_u8_to_u32_nfc call site: 00181 /src/libidn2/lib/idna.c:107
2 2 1 :

['__errno_location']

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

['realloc']

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

['__errno_location']

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

['malloc', '__errno_location']

2 2 u8_conv_from_encoding call site: 00214 /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
2 2 1 :

['abort']

2 2 u32_normalize call site: 00078 /src/libidn2/unistring/uninorm/u-normalize-internal.h:362

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 idn2_to_ascii_8z [function] [call site] 00002
2 idn2_lookup_u8 [function] [call site] 00003
3 set_default_flags [function] [call site] 00004
3 _tr46 [function] [call site] 00005
4 u8_strlen [function] [call site] 00006
5 strlen [call site] 00007
4 u8_to_u32 [function] [call site] 00008
5 u8_mbtoucr [function] [call site] 00009
5 rpl_free [function] [call site] 00010
6 __errno_location [call site] 00011
6 __errno_location [call site] 00012
5 __errno_location [call site] 00013
5 realloc [call site] 00014
5 __errno_location [call site] 00016
5 __errno_location [call site] 00017
5 realloc [call site] 00018
4 __errno_location [call site] 00019
4 get_idna_map [function] [call site] 00020
5 bsearch [call site] 00021
5 _compare_idna_map [function] [call site] 00022
6 _fill_map [function] [call site] 00023
5 bsearch [call site] 00024
5 _compare_idna_map [function] [call site] 00025
5 bsearch [call site] 00026
5 _compare_idna_map [function] [call site] 00027
5 _fill_map [function] [call site] 00028
4 get_idna_map [function] [call site] 00039
4 get_map_data [function] [call site] 00042
4 get_map_data [function] [call site] 00046
4 get_map_data [function] [call site] 00049
4 u32_normalize [function] [call site] 00051
5 u32_mbtouc_unsafe [function] [call site] 00052
5 abort [call site] 00053
5 abort [call site] 00054
5 uc_combining_class [function] [call site] 00055
5 gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00056
6 gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00057
7 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00058
8 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00059
9 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00060
5 u32_uctomb [function] [call site] 00063
5 __errno_location [call site] 00064
5 abort [call site] 00065
5 __errno_location [call site] 00066
5 __errno_location [call site] 00067
5 realloc [call site] 00069
5 __errno_location [call site] 00070
5 u32_uctomb [function] [call site] 00071
5 __errno_location [call site] 00072
5 abort [call site] 00073
5 abort [call site] 00074
5 __errno_location [call site] 00075
5 __errno_location [call site] 00077
5 realloc [call site] 00078
5 abort [call site] 00079
5 __errno_location [call site] 00081
5 __errno_location [call site] 00084
4 __errno_location [call site] 00086
4 u32_to_u8 [function] [call site] 00087
5 u8_uctomb [function] [call site] 00088
5 __errno_location [call site] 00090
5 realloc [call site] 00091
5 __errno_location [call site] 00093
5 u8_uctomb [function] [call site] 00094
5 abort [call site] 00095
5 __errno_location [call site] 00096
5 realloc [call site] 00097
4 __errno_location [call site] 00099
4 _idn2_punycode_decode_internal [function] [call site] 00100
4 _idn2_label_test [function] [call site] 00105
5 u32_normalize [function] [call site] 00106
5 __errno_location [call site] 00107
5 memcmp [call site] 00108
5 uc_is_general_category [function] [call site] 00110
6 bitmap_lookup [function] [call site] 00111
5 _idn2_disallowed_p [function] [call site] 00112
6 property [function] [call site] 00113
7 bsearch [call site] 00114
5 get_idna_map [function] [call site] 00116
5 _idn2_contextj_p [function] [call site] 00119
5 _idn2_contextj_rule [function] [call site] 00121
6 _idn2_contextj_p [function] [call site] 00122
6 uc_combining_class [function] [call site] 00123
6 uc_joining_type [function] [call site] 00124
7 uc_is_general_category_withtable [function] [call site] 00125
8 lookup_withtable [function] [call site] 00126
6 uc_joining_type [function] [call site] 00127
6 uc_combining_class [function] [call site] 00128
5 _idn2_contexto_p [function] [call site] 00129
5 _idn2_contexto_p [function] [call site] 00131
5 _idn2_contexto_with_rule [function] [call site] 00132
5 _idn2_contexto_rule [function] [call site] 00133
6 _idn2_contexto_p [function] [call site] 00134
6 _uc_script_name [function] [call site] 00135
7 uc_script [function] [call site] 00136
6 strcmp [call site] 00137
6 _uc_script_name [function] [call site] 00138
6 strcmp [call site] 00139
6 _uc_script_name [function] [call site] 00140
6 strcmp [call site] 00141
6 _uc_script_name [function] [call site] 00142
6 strcmp [call site] 00143
6 _uc_script_name [function] [call site] 00144
6 strcmp [call site] 00145
5 _idn2_unassigned_p [function] [call site] 00146
5 _idn2_bidi [function] [call site] 00148
6 _isBidi [function] [call site] 00149
7 uc_bidi_category [function] [call site] 00150
8 uc_bidi_class [function] [call site] 00151
6 uc_bidi_category [function] [call site] 00152
6 uc_bidi_category [function] [call site] 00153
6 uc_bidi_category [function] [call site] 00154
5 get_idna_map [function] [call site] 00155
4 _idn2_label_test [function] [call site] 00160
4 u32_to_u8 [function] [call site] 00161
4 __errno_location [call site] 00163
3 strchrnul [call site] 00165
3 label [function] [call site] 00166
4 _idn2_ascii_p [function] [call site] 00167
4 memcmp [call site] 00168
4 _idn2_punycode_decode_internal [function] [call site] 00169
4 u32_to_u8 [function] [call site] 00170
4 __errno_location [call site] 00171
4 _idn2_u8_to_u32_nfc [function] [call site] 00172
5 u8_to_u32 [function] [call site] 00173
5 __errno_location [call site] 00174
5 _isNFC [function] [call site] 00175
6 uc_combining_class [function] [call site] 00176
6 get_nfcqc_map [function] [call site] 00177
7 bsearch [call site] 00178
7 _compare_nfcqc_map [function] [call site] 00179
5 u32_normalize [function] [call site] 00180
5 __errno_location [call site] 00182
4 _idn2_label_test [function] [call site] 00183
4 _idn2_punycode_encode_internal [function] [call site] 00184
5 encode_digit [function] [call site] 00185
5 encode_digit [function] [call site] 00186
4 c_strncasecmp [function] [call site] 00188
4 _idn2_punycode_decode_internal [function] [call site] 00191
1 idn2_to_ascii_8z [function] [call site] 00201
1 idn2_to_ascii_8z [function] [call site] 00202
1 idn2_to_ascii_lz [function] [call site] 00203
2 idn2_lookup_ul [function] [call site] 00204
3 locale_charset [function] [call site] 00205
4 nl_langinfo [call site] 00206
3 u8_strconv_from_encoding [function] [call site] 00207
4 strlen [call site] 00208
4 u8_conv_from_encoding [function] [call site] 00209
5 c_strcasecmp [function] [call site] 00210
5 __errno_location [call site] 00213
5 mem_iconveha [function] [call site] 00214
6 strlen [call site] 00215
6 mem_iconveha_notranslit [function] [call site] 00217
7 mem_iconveh [function] [call site] 00218
8 c_strcasecmp [function] [call site] 00219
8 __errno_location [call site] 00220
8 iconveh_open [function] [call site] 00221
9 iconv_open [call site] 00222
9 c_strcasecmp [function] [call site] 00223
9 iconv_open [call site] 00224
9 __errno_location [call site] 00225
9 __errno_location [call site] 00226
9 c_strcasecmp [function] [call site] 00227
9 c_strcasecmp [function] [call site] 00228
9 iconv_open [call site] 00229
9 __errno_location [call site] 00230
9 iconv_close [call site] 00231
9 iconv_close [call site] 00232
9 __errno_location [call site] 00233
8 mem_cd_iconveh [function] [call site] 00234
9 mem_cd_iconveh_internal [function] [call site] 00235
10 iconv [call site] 00236
10 iconv_carefully_1 [function] [call site] 00237
11 iconv [call site] 00238
11 __errno_location [call site] 00239
10 iconv [call site] 00240
10 __errno_location [call site] 00241
10 __errno_location [call site] 00242
10 __errno_location [call site] 00243
10 abort [call site] 00244
10 realloc [call site] 00245
10 rpl_free [function] [call site] 00246
10 __errno_location [call site] 00247
10 abort [call site] 00248
10 rpl_free [function] [call site] 00249
10 realloc [call site] 00250
10 rpl_free [function] [call site] 00251
10 __errno_location [call site] 00252
10 iconv [call site] 00253
10 __errno_location [call site] 00254
10 realloc [call site] 00255
10 rpl_free [function] [call site] 00256
10 __errno_location [call site] 00257
10 rpl_free [function] [call site] 00258
10 iconv [call site] 00259
10 iconv [call site] 00260
10 iconv_carefully_1 [function] [call site] 00261
10 iconv [call site] 00262
10 utf8conv_carefully [function] [call site] 00263
11 u8_mbtoucr [function] [call site] 00264
11 __errno_location [call site] 00265
11 u8_mbtouc [function] [call site] 00266
11 __errno_location [call site] 00267
11 u8_uctomb [function] [call site] 00268
11 __errno_location [call site] 00269
11 __errno_location [call site] 00270
10 iconv [call site] 00271
10 __errno_location [call site] 00272
10 rpl_free [function] [call site] 00273
10 __errno_location [call site] 00274
10 abort [call site] 00275
10 __errno_location [call site] 00276
10 iconv [call site] 00277
10 utf8conv_carefully [function] [call site] 00278
10 iconv [call site] 00279
10 __errno_location [call site] 00280
10 __errno_location [call site] 00281
10 __errno_location [call site] 00282
10 abort [call site] 00284
10 abort [call site] 00285
10 u8_mbtouc_unsafe [function] [call site] 00286
10 iconv [call site] 00287
10 __errno_location [call site] 00288
10 iconv [call site] 00289
10 __errno_location [call site] 00290
10 __errno_location [call site] 00291
10 abort [call site] 00292
10 realloc [call site] 00293
10 rpl_free [function] [call site] 00294
10 __errno_location [call site] 00295
10 iconv [call site] 00296
10 abort [call site] 00297
10 rpl_free [function] [call site] 00298
10 rpl_free [function] [call site] 00299
10 realloc [call site] 00300
10 rpl_free [function] [call site] 00301
10 __errno_location [call site] 00302
10 rpl_free [function] [call site] 00303
10 __errno_location [call site] 00304
10 __errno_location [call site] 00305
10 realloc [call site] 00306
8 __errno_location [call site] 00307
8 iconveh_close [function] [call site] 00308
9 iconv_close [call site] 00309
9 iconv_close [call site] 00310
9 __errno_location [call site] 00311
9 iconv_close [call site] 00312
9 __errno_location [call site] 00313
9 iconv_close [call site] 00314
8 __errno_location [call site] 00315
8 iconveh_close [function] [call site] 00316
7 __errno_location [call site] 00318
7 strcmp [call site] 00319
7 mem_iconveha_notranslit [function] [call site] 00320
8 __errno_location [call site] 00321
8 mem_iconveha_notranslit [function] [call site] 00322
9 __errno_location [call site] 00323
9 __errno_location [call site] 00324
6 mem_iconveha_notranslit [function] [call site] 00326
4 u8_strlen [function] [call site] 00327
4 __errno_location [call site] 00329
3 __errno_location [call site] 00330
3 idn2_lookup_u8 [function] [call site] 00331
1 idn2_free [function] [call site] 00333
1 idn2_to_ascii_lz [function] [call site] 00334
1 idn2_to_ascii_lz [function] [call site] 00335
1 idn2_to_ascii_4i [function] [call site] 00336
2 idn2_to_ascii_4i2 [function] [call site] 00337
3 u32_to_u8 [function] [call site] 00339
3 __errno_location [call site] 00341
3 idn2_lookup_u8 [function] [call site] 00342
2 strlen [call site] 00345
1 idn2_to_ascii_4i [function] [call site] 00347
1 idn2_to_ascii_4i [function] [call site] 00348
1 idn2_to_ascii_4i2 [function] [call site] 00349
1 idn2_free [function] [call site] 00350
1 idn2_to_ascii_4i2 [function] [call site] 00351
1 idn2_to_ascii_4i2 [function] [call site] 00352
1 idn2_to_ascii_4z [function] [call site] 00353
2 u32_strlen [function] [call site] 00354
2 u32_to_u8 [function] [call site] 00355
2 __errno_location [call site] 00356
2 idn2_lookup_u8 [function] [call site] 00357
1 idn2_free [function] [call site] 00359
1 idn2_to_ascii_4z [function] [call site] 00360
1 idn2_to_ascii_4z [function] [call site] 00361
1 idn2_to_ascii_8z [function] [call site] 00362
1 idn2_free [function] [call site] 00363
1 idn2_to_ascii_lz [function] [call site] 00364
1 idn2_free [function] [call site] 00365
1 idn2_to_ascii_4i [function] [call site] 00366
1 idn2_to_ascii_4i2 [function] [call site] 00367
1 idn2_free [function] [call site] 00368
1 idn2_to_ascii_4z [function] [call site] 00369
1 idn2_free [function] [call site] 00370