Fuzz introspector: libidn_tounicode_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
24 24 3 :

['__errno_location', 'realloc', 'iconv']

24 28 str_cd_iconv call site: 00144 /src/libidn/lib/gl/striconv.c:276
8 12 3 :

['__errno_location', 'rpl_free', 'iconv']

12 16 str_cd_iconv call site: 00148 /src/libidn/lib/gl/striconv.c:309
2 2 1 :

['__errno_location']

2 2 str_iconv call site: 00135 /src/libidn/lib/gl/striconv.c:373
0 0 None 12 16 str_cd_iconv call site: 00143 /src/libidn/lib/gl/striconv.c:274
0 0 None 6 307 stringprep call site: 00021 /src/libidn/lib/stringprep.c:433
0 0 None 4 12 stringprep call site: 00056 /src/libidn/lib/stringprep.c:452
0 0 None 2 448 idna_to_unicode_4z4z call site: 00100 /src/libidn/lib/idna.c:661
0 0 None 2 448 idna_to_unicode_4z4z call site: 00104 /src/libidn/lib/idna.c:682
0 0 None 2 58 idna_to_ascii_4i call site: 00082 /src/libidn/lib/idna.c:158
0 0 None 2 2 str_cd_iconv call site: 00139 /src/libidn/lib/gl/striconv.c:250
0 0 None 0 259 stringprep_4i call site: 00023 /src/libidn/lib/stringprep.c:201
0 0 None 0 259 stringprep_4i call site: 00024 /src/libidn/lib/stringprep.c:206

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 __assert_fail [call site] 00002
1 __assert_fail [call site] 00003
1 idna_to_unicode_44i [function] [call site] 00004
2 stringprep_ucs4_to_utf8 [function] [call site] 00005
3 g_ucs4_to_utf8 [function] [call site] 00006
4 g_unichar_to_utf8 [function] [call site] 00007
2 idna_to_unicode_internal [function] [call site] 00008
3 strlen [call site] 00009
3 realloc [call site] 00010
3 rpl_free [function] [call site] 00011
4 __errno_location [call site] 00012
4 __errno_location [call site] 00013
3 stringprep [function] [call site] 00014
4 strlen [call site] 00015
4 stringprep_utf8_to_ucs4 [function] [call site] 00017
5 strlen [call site] 00018
5 g_utf8_to_ucs4_fast [function] [call site] 00020
4 realloc [call site] 00021
4 stringprep_4i [function] [call site] 00023
5 stringprep_ucs4_nfkc_normalize [function] [call site] 00024
6 stringprep_ucs4_to_utf8 [function] [call site] 00025
6 _g_utf8_normalize_wc [function] [call site] 00026
7 g_utf8_get_char [function] [call site] 00027
7 decompose_hangul [function] [call site] 00028
7 find_decomposition [function] [call site] 00029
7 g_utf8_strlen [function] [call site] 00030
7 g_utf8_get_char [function] [call site] 00031
7 decompose_hangul [function] [call site] 00032
7 find_decomposition [function] [call site] 00033
7 g_utf8_get_char [function] [call site] 00034
7 g_unicode_canonical_ordering [function] [call site] 00035
7 g_unicode_canonical_ordering [function] [call site] 00036
7 combine [function] [call site] 00037
8 combine_hangul [function] [call site] 00038
5 stringprep_find_string_in_table [function] [call site] 00042
6 stringprep_find_character_in_table [function] [call site] 00043
7 bsearch [call site] 00044
7 _compare_table_element [function] [call site] 00045
5 stringprep_find_string_in_table [function] [call site] 00046
5 stringprep_apply_table_to_string [function] [call site] 00047
6 stringprep_find_string_in_table [function] [call site] 00048
5 stringprep_find_string_in_table [function] [call site] 00049
5 stringprep_find_string_in_table [function] [call site] 00050
5 stringprep_find_string_in_table [function] [call site] 00051
5 stringprep_find_character_in_table [function] [call site] 00052
5 stringprep_find_character_in_table [function] [call site] 00053
4 stringprep_ucs4_to_utf8 [function] [call site] 00055
4 strlen [call site] 00057
4 strcpy [call site] 00059
3 stringprep [function] [call site] 00061
3 c_strncasecmp [function] [call site] 00063
3 strlen [call site] 00067
3 strlen [call site] 00068
3 punycode_decode [function] [call site] 00069
3 idna_to_ascii_4i [function] [call site] 00073
4 stringprep_ucs4_to_utf8 [function] [call site] 00074
4 strlen [call site] 00075
4 realloc [call site] 00076
4 stringprep [function] [call site] 00078
4 stringprep [function] [call site] 00079
4 stringprep_utf8_to_ucs4 [function] [call site] 00081
4 punycode_encode [function] [call site] 00087
5 encode_basic [function] [call site] 00088
5 encode_digit [function] [call site] 00089
5 encode_digit [function] [call site] 00090
4 strlen [call site] 00094
3 c_strcasecmp [function] [call site] 00096
1 idna_to_unicode_44i [function] [call site] 00099
1 idna_to_unicode_4z4z [function] [call site] 00100
2 idna_to_unicode_44i [function] [call site] 00102
2 realloc [call site] 00104
1 idna_to_unicode_4z4z [function] [call site] 00110
1 idna_to_unicode_8z4z [function] [call site] 00112
2 stringprep_utf8_to_ucs4 [function] [call site] 00113
2 idna_to_unicode_4z4z [function] [call site] 00114
1 idna_to_unicode_8z4z [function] [call site] 00117
1 idna_to_unicode_8z8z [function] [call site] 00119
2 idna_to_unicode_8z4z [function] [call site] 00120
2 stringprep_ucs4_to_utf8 [function] [call site] 00121
1 idna_to_unicode_8z8z [function] [call site] 00124
1 idna_to_unicode_8zlz [function] [call site] 00126
2 idna_to_unicode_8z8z [function] [call site] 00127
2 stringprep_utf8_to_locale [function] [call site] 00128
3 stringprep_locale_charset [function] [call site] 00129
4 getenv [call site] 00130
4 nl_langinfo [call site] 00131
3 stringprep_convert [function] [call site] 00132
4 str_iconv [function] [call site] 00133
5 c_strcasecmp [function] [call site] 00134
5 strdup [call site] 00135
5 __errno_location [call site] 00136
5 iconv_open [call site] 00137
5 str_cd_iconv [function] [call site] 00138
6 strlen [call site] 00139
6 __errno_location [call site] 00140
6 iconv [call site] 00141
6 iconv [call site] 00142
6 __errno_location [call site] 00143
6 __errno_location [call site] 00144
6 __errno_location [call site] 00145
6 realloc [call site] 00146
6 __errno_location [call site] 00147
6 iconv [call site] 00148
6 __errno_location [call site] 00149
6 __errno_location [call site] 00150
6 realloc [call site] 00151
6 __errno_location [call site] 00152
6 realloc [call site] 00153
5 __errno_location [call site] 00155
5 iconv_close [call site] 00156
5 __errno_location [call site] 00157
5 iconv_close [call site] 00158
1 idna_to_unicode_8zlz [function] [call site] 00162
1 idna_to_unicode_lzlz [function] [call site] 00164
2 stringprep_locale_to_utf8 [function] [call site] 00165
3 stringprep_locale_charset [function] [call site] 00166
3 stringprep_convert [function] [call site] 00167
2 idna_to_unicode_8zlz [function] [call site] 00168
1 idna_to_unicode_lzlz [function] [call site] 00171