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
251 251 5 :

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

329 373 mem_cd_iconveh_internal call site: 00058 /src/libidn2/unistring/striconveh.c:521
2 10 2 :

['rpl_free', 'iconv']

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

['abort']

2 2 freea call site: 00138 /src/libidn2/gl/malloca.c:110
2 2 1 :

['realloc']

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

['__errno_location']

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

['__errno_location']

2 2 mem_iconveha call site: 00022 /src/libidn2/unistring/striconveha.c:232
2 2 2 :

['__errno_location', 'malloc']

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

['__errno_location', 'malloc']

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

['__errno_location']

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

['rpl_free']

0 4 idn2_to_unicode_4z4z call site: 00207 /src/libidn2/lib/decode.c:208
0 4 1 :

['rpl_free']

0 4 idn2_to_unicode_8z8z call site: 00179 /src/libidn2/lib/decode.c:326
0 4 1 :

['rpl_free']

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

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 __errno_location [call site] 00023
5 mem_iconveha_notranslit [function] [call site] 00024
6 mem_iconveh [function] [call site] 00025
7 c_strcasecmp [function] [call site] 00026
7 __errno_location [call site] 00027
7 iconveh_open [function] [call site] 00028
8 iconv_open [call site] 00029
8 c_strcasecmp [function] [call site] 00030
8 iconv_open [call site] 00031
8 __errno_location [call site] 00032
8 __errno_location [call site] 00033
8 c_strcasecmp [function] [call site] 00034
8 c_strcasecmp [function] [call site] 00035
8 iconv_open [call site] 00036
8 __errno_location [call site] 00037
8 iconv_close [call site] 00038
8 iconv_close [call site] 00039
8 __errno_location [call site] 00040
7 mem_cd_iconveh [function] [call site] 00041
8 mem_cd_iconveh_internal [function] [call site] 00042
9 iconv [call site] 00043
9 iconv_carefully_1 [function] [call site] 00044
10 iconv [call site] 00045
10 __errno_location [call site] 00046
9 iconv [call site] 00047
9 __errno_location [call site] 00048
9 __errno_location [call site] 00049
9 __errno_location [call site] 00050
9 abort [call site] 00051
9 realloc [call site] 00052
9 rpl_free [function] [call site] 00053
10 __errno_location [call site] 00054
10 __errno_location [call site] 00055
9 __errno_location [call site] 00056
9 abort [call site] 00057
9 realloc [call site] 00059
9 __errno_location [call site] 00061
9 iconv [call site] 00062
9 __errno_location [call site] 00063
9 realloc [call site] 00064
9 __errno_location [call site] 00066
9 iconv [call site] 00068
9 iconv [call site] 00069
9 iconv_carefully_1 [function] [call site] 00070
9 iconv [call site] 00071
9 utf8conv_carefully [function] [call site] 00072
10 u8_mbtoucr [function] [call site] 00073
10 __errno_location [call site] 00074
10 u8_mbtouc [function] [call site] 00075
10 __errno_location [call site] 00076
10 u8_uctomb [function] [call site] 00077
10 __errno_location [call site] 00078
10 __errno_location [call site] 00079
9 iconv [call site] 00080
9 __errno_location [call site] 00081
9 __errno_location [call site] 00083
9 abort [call site] 00084
9 __errno_location [call site] 00085
9 iconv [call site] 00086
9 utf8conv_carefully [function] [call site] 00087
9 iconv [call site] 00088
9 __errno_location [call site] 00089
9 __errno_location [call site] 00090
9 __errno_location [call site] 00091
9 abort [call site] 00093
9 abort [call site] 00094
9 u8_mbtouc_unsafe [function] [call site] 00095
9 iconv [call site] 00096
9 __errno_location [call site] 00097
9 iconv [call site] 00098
9 __errno_location [call site] 00099
9 __errno_location [call site] 00100
9 abort [call site] 00101
9 realloc [call site] 00102
9 __errno_location [call site] 00104
9 iconv [call site] 00105
9 abort [call site] 00106
9 realloc [call site] 00109
9 __errno_location [call site] 00111
9 __errno_location [call site] 00113
9 __errno_location [call site] 00114
9 realloc [call site] 00115
7 __errno_location [call site] 00116
7 iconveh_close [function] [call site] 00117
8 iconv_close [call site] 00118
8 __errno_location [call site] 00119
8 iconv_close [call site] 00120
8 iconv_close [call site] 00121
8 __errno_location [call site] 00122
8 iconv_close [call site] 00123
8 __errno_location [call site] 00124
8 iconv_close [call site] 00125
8 __errno_location [call site] 00126
8 iconv_close [call site] 00127
7 __errno_location [call site] 00128
7 iconveh_close [function] [call site] 00129
6 __errno_location [call site] 00131
6 strcmp [call site] 00132
6 mem_iconveha_notranslit [function] [call site] 00133
7 __errno_location [call site] 00134
7 mem_iconveha_notranslit [function] [call site] 00135
8 __errno_location [call site] 00136
8 __errno_location [call site] 00137
5 mem_iconveha_notranslit [function] [call site] 00139
3 u8_strlen [function] [call site] 00140
4 strlen [call site] 00141
3 __errno_location [call site] 00143
2 __errno_location [call site] 00144
2 idn2_to_unicode_8zlz [function] [call site] 00145
3 idn2_to_unicode_8z8z [function] [call site] 00146
4 idn2_to_unicode_8z4z [function] [call site] 00147
5 idn2_punycode_decode [function] [call site] 00148
5 u8_to_u32 [function] [call site] 00152
6 u8_mbtoucr [function] [call site] 00153
6 __errno_location [call site] 00155
6 realloc [call site] 00156
6 __errno_location [call site] 00158
6 __errno_location [call site] 00159
5 __errno_location [call site] 00160
5 u32_cpy_alloc [function] [call site] 00165
5 __errno_location [call site] 00166
4 u32_strlen [function] [call site] 00167
4 u32_to_u8 [function] [call site] 00168
5 u8_uctomb [function] [call site] 00169
5 __errno_location [call site] 00171
5 realloc [call site] 00172
5 __errno_location [call site] 00174
5 u8_uctomb [function] [call site] 00175
5 abort [call site] 00176
5 __errno_location [call site] 00177
4 __errno_location [call site] 00179
3 locale_charset [function] [call site] 00181
3 u8_strconv_to_encoding [function] [call site] 00182
4 c_strcasecmp [function] [call site] 00183
4 u8_strlen [function] [call site] 00184
4 __errno_location [call site] 00186
4 __errno_location [call site] 00187
4 u8_strlen [function] [call site] 00188
4 mem_iconveha [function] [call site] 00189
4 strlen [call site] 00190
4 __errno_location [call site] 00192
3 __errno_location [call site] 00193
1 idn2_to_unicode_lzlz [function] [call site] 00200
1 idn2_to_unicode_lzlz [function] [call site] 00201
1 idn2_to_unicode_4z4z [function] [call site] 00202
2 u32_strlen [function] [call site] 00203
2 u32_to_u8 [function] [call site] 00204
2 __errno_location [call site] 00205
2 idn2_to_unicode_8z4z [function] [call site] 00206
1 idn2_free [function] [call site] 00209
1 idn2_to_unicode_4z4z [function] [call site] 00210
1 idn2_to_unicode_4z4z [function] [call site] 00211
1 idn2_to_unicode_8z4z [function] [call site] 00212
1 idn2_free [function] [call site] 00213
1 idn2_to_unicode_8z4z [function] [call site] 00214
1 idn2_to_unicode_8z4z [function] [call site] 00215
1 idn2_to_unicode_44i [function] [call site] 00216
2 idn2_to_unicode_4z4z [function] [call site] 00218
2 u32_strlen [function] [call site] 00220
1 idn2_to_unicode_44i [function] [call site] 00223
1 idn2_check_version [function] [call site] 00224
1 idn2_to_unicode_lzlz [function] [call site] 00225
1 idn2_free [function] [call site] 00226
1 __assert_fail [call site] 00227
1 idn2_to_unicode_44i [function] [call site] 00228