Fuzz introspector: libidn2_to_unicode_8z8z_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: 00057 /src/libidn2/unistring/striconveh.c:521
2 10 2 :

['rpl_free', 'iconv']

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

['abort']

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

['realloc']

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

['__errno_location']

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

['malloc', '__errno_location']

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

['malloc', '__errno_location']

2 2 u32_to_u8 call site: 00175 /src/libidn2/unistring/unistr/u32-to-u8.c:106
2 2 1 :

['__errno_location']

2 2 u8_to_u32 call site: 00157 /src/libidn2/unistring/unistr/u8-to-u32.c:106
0 4 1 :

['rpl_free']

0 4 idn2_to_unicode_4z4z call site: 00206 /src/libidn2/lib/decode.c:210
0 4 1 :

['rpl_free']

0 4 idn2_to_unicode_8z8z call site: 00178 /src/libidn2/lib/decode.c:328
0 4 1 :

['rpl_free']

0 4 mem_iconveh call site: 00128 /src/libidn2/unistring/striconveh.c:1163
0 4 1 :

['rpl_free']

0 4 mem_cd_iconveh_internal call site: 00056 /src/libidn2/unistring/striconveh.c:516

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 idn2_check_version [function] [call site] 00002
2 strverscmp [call site] 00003
1 idn2_strerror_name [function] [call site] 00004
1 idn2_strerror [function] [call site] 00005
1 idn2_to_unicode_lzlz [function] [call site] 00006
2 locale_charset [function] [call site] 00007
3 nl_langinfo [call site] 00008
2 u8_strconv_from_encoding [function] [call site] 00009
3 strlen [call site] 00010
3 u8_conv_from_encoding [function] [call site] 00011
4 c_strcasecmp [function] [call site] 00012
4 __errno_location [call site] 00016
4 abort [call site] 00018
4 __errno_location [call site] 00019
4 mem_iconveha [function] [call site] 00020
5 strlen [call site] 00021
5 mem_iconveha_notranslit [function] [call site] 00023
6 mem_iconveh [function] [call site] 00024
7 c_strcasecmp [function] [call site] 00025
7 __errno_location [call site] 00026
7 iconveh_open [function] [call site] 00027
8 iconv_open [call site] 00028
8 c_strcasecmp [function] [call site] 00029
8 iconv_open [call site] 00030
8 __errno_location [call site] 00031
8 __errno_location [call site] 00032
8 c_strcasecmp [function] [call site] 00033
8 c_strcasecmp [function] [call site] 00034
8 iconv_open [call site] 00035
8 __errno_location [call site] 00036
8 iconv_close [call site] 00037
8 iconv_close [call site] 00038
8 __errno_location [call site] 00039
7 mem_cd_iconveh [function] [call site] 00040
8 mem_cd_iconveh_internal [function] [call site] 00041
9 iconv [call site] 00042
9 iconv_carefully_1 [function] [call site] 00043
10 iconv [call site] 00044
10 __errno_location [call site] 00045
9 iconv [call site] 00046
9 __errno_location [call site] 00047
9 __errno_location [call site] 00048
9 __errno_location [call site] 00049
9 abort [call site] 00050
9 realloc [call site] 00051
9 rpl_free [function] [call site] 00052
10 __errno_location [call site] 00053
10 __errno_location [call site] 00054
9 __errno_location [call site] 00055
9 abort [call site] 00056
9 realloc [call site] 00058
9 __errno_location [call site] 00060
9 iconv [call site] 00061
9 __errno_location [call site] 00062
9 realloc [call site] 00063
9 __errno_location [call site] 00065
9 iconv [call site] 00067
9 iconv [call site] 00068
9 iconv_carefully_1 [function] [call site] 00069
9 iconv [call site] 00070
9 utf8conv_carefully [function] [call site] 00071
10 u8_mbtoucr [function] [call site] 00072
10 __errno_location [call site] 00073
10 u8_mbtouc [function] [call site] 00074
10 __errno_location [call site] 00075
10 u8_uctomb [function] [call site] 00076
10 __errno_location [call site] 00077
10 __errno_location [call site] 00078
9 iconv [call site] 00079
9 __errno_location [call site] 00080
9 __errno_location [call site] 00082
9 abort [call site] 00083
9 __errno_location [call site] 00084
9 iconv [call site] 00085
9 utf8conv_carefully [function] [call site] 00086
9 iconv [call site] 00087
9 __errno_location [call site] 00088
9 __errno_location [call site] 00089
9 __errno_location [call site] 00090
9 abort [call site] 00092
9 abort [call site] 00093
9 u8_mbtouc_unsafe [function] [call site] 00094
9 iconv [call site] 00095
9 __errno_location [call site] 00096
9 iconv [call site] 00097
9 __errno_location [call site] 00098
9 __errno_location [call site] 00099
9 abort [call site] 00100
9 realloc [call site] 00101
9 __errno_location [call site] 00103
9 iconv [call site] 00104
9 abort [call site] 00105
9 realloc [call site] 00108
9 __errno_location [call site] 00110
9 __errno_location [call site] 00112
9 __errno_location [call site] 00113
9 realloc [call site] 00114
7 __errno_location [call site] 00115
7 iconveh_close [function] [call site] 00116
8 iconv_close [call site] 00117
8 __errno_location [call site] 00118
8 iconv_close [call site] 00119
8 iconv_close [call site] 00120
8 __errno_location [call site] 00121
8 iconv_close [call site] 00122
8 __errno_location [call site] 00123
8 iconv_close [call site] 00124
8 __errno_location [call site] 00125
8 iconv_close [call site] 00126
7 __errno_location [call site] 00127
7 iconveh_close [function] [call site] 00128
6 __errno_location [call site] 00130
6 strcmp [call site] 00131
6 mem_iconveha_notranslit [function] [call site] 00132
7 __errno_location [call site] 00133
7 mem_iconveha_notranslit [function] [call site] 00134
8 __errno_location [call site] 00135
8 __errno_location [call site] 00136
5 mem_iconveha_notranslit [function] [call site] 00138
3 u8_strlen [function] [call site] 00139
4 strlen [call site] 00140
3 __errno_location [call site] 00142
2 __errno_location [call site] 00143
2 idn2_to_unicode_8zlz [function] [call site] 00144
3 idn2_to_unicode_8z8z [function] [call site] 00145
4 idn2_to_unicode_8z4z [function] [call site] 00146
5 _idn2_punycode_decode_internal [function] [call site] 00147
5 u8_to_u32 [function] [call site] 00151
6 u8_mbtoucr [function] [call site] 00152
6 __errno_location [call site] 00154
6 realloc [call site] 00155
6 __errno_location [call site] 00157
6 __errno_location [call site] 00158
5 __errno_location [call site] 00159
5 u32_cpy_alloc [function] [call site] 00164
5 __errno_location [call site] 00165
4 u32_strlen [function] [call site] 00166
4 u32_to_u8 [function] [call site] 00167
5 u8_uctomb [function] [call site] 00168
5 __errno_location [call site] 00170
5 realloc [call site] 00171
5 __errno_location [call site] 00173
5 u8_uctomb [function] [call site] 00174
5 abort [call site] 00175
5 __errno_location [call site] 00176
4 __errno_location [call site] 00178
3 locale_charset [function] [call site] 00180
3 u8_strconv_to_encoding [function] [call site] 00181
4 c_strcasecmp [function] [call site] 00182
4 u8_strlen [function] [call site] 00183
4 __errno_location [call site] 00185
4 __errno_location [call site] 00186
4 u8_strlen [function] [call site] 00187
4 mem_iconveha [function] [call site] 00188
4 strlen [call site] 00189
4 __errno_location [call site] 00191
3 __errno_location [call site] 00192
1 idn2_to_unicode_lzlz [function] [call site] 00199
1 idn2_to_unicode_lzlz [function] [call site] 00200
1 idn2_to_unicode_4z4z [function] [call site] 00201
2 u32_strlen [function] [call site] 00202
2 u32_to_u8 [function] [call site] 00203
2 __errno_location [call site] 00204
2 idn2_to_unicode_8z4z [function] [call site] 00205
1 idn2_free [function] [call site] 00208
1 idn2_to_unicode_4z4z [function] [call site] 00209
1 idn2_to_unicode_4z4z [function] [call site] 00210
1 idn2_to_unicode_8z4z [function] [call site] 00211
1 idn2_free [function] [call site] 00212
1 idn2_to_unicode_8z4z [function] [call site] 00213
1 idn2_to_unicode_8z4z [function] [call site] 00214
1 idn2_to_unicode_44i [function] [call site] 00215
2 idn2_to_unicode_4z4z [function] [call site] 00217
2 u32_strlen [function] [call site] 00219
1 idn2_to_unicode_44i [function] [call site] 00222
1 idn2_check_version [function] [call site] 00223
1 idn2_to_unicode_lzlz [function] [call site] 00224
1 idn2_free [function] [call site] 00225
1 __assert_fail [call site] 00226
1 idn2_to_unicode_44i [function] [call site] 00227