Fuzz introspector: libpsl/fuzz/libpsl_load_dafsa_fuzzer.c
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
824 834 4 :

['umtx_unlock_59', 'ucnv_load_59', 'U_FAILURE(UErrorCode) [clone .379]', 'umtx_lock_59']

824 834 ucnv_loadSharedData_59 call site: 00000 /src/icu/source/common/ucnv_bld.cpp:800
820 820 1 :

['icu_59::Norm2AllModes::getNFKCInstance(UErrorCode&)']

822 1903 icu_59::Normalizer2::getInstance(charconst*,charconst*,UNormalization2Mode,UErrorCode&) call site: 00000 /src/icu/source/common/loadednormalizer2impl.cpp:221
737 881 12 :

['udata_findCachedData(char const*, UErrorCode&)', 'udata_cacheDataItem(char const*, UDataMemory*, UErrorCode*)', 'uprv_mapFile_59', 'icu_59::UDataPathIterator::UDataPathIterator(char const*, char const*, char const*, char const*, signed char, UErrorCode*)', 'U_FAILURE(UErrorCode) [clone .2245]', 'U_SUCCESS(UErrorCode) [clone .2248]', 'UDataMemory_isLoaded_59', 'icu_59::UDataPathIterator::~UDataPathIterator()', 'u_getDataDirectory_59', 'findBasename(char const*)', 'icu_59::UDataPathIterator::next(UErrorCode*)', 'udata_checkCommonData_59']

737 881 openCommonData(charconst*,int,UErrorCode*) call site: 00000 /src/icu/source/common/udata.cpp:671
162 162 3 :

['icu_59::Normalizer2Impl::copyLowPrefixFromNulTerminated(char16_t const*, int, icu_59::ReorderingBuffer*, UErrorCode&) const', 'u_strchr_59', 'U_FAILURE(UErrorCode) [clone .5550]']

175 838 icu_59::Normalizer2Impl::compose(char16_tconst*,char16_tconst*,signedchar,signedchar,icu_59::ReorderingBuffer&,UErrorCode&)const call site: 00000 /src/icu/source/common/normalizer2impl.cpp:1099
152 152 1 :

['icu_59::Norm2AllModes::getNFCInstance(UErrorCode&)']

154 1235 icu_59::Normalizer2::getInstance(charconst*,charconst*,UNormalization2Mode,UErrorCode&) call site: 00000 /src/icu/source/common/loadednormalizer2impl.cpp:219
123 123 1 :

['_getKeywords(char const*, char, char*, int, char*, int, int*, signed char, char const*, char const*, UErrorCode*)']

125 135 _canonicalize(charconst*,char*,int,unsignedint,UErrorCode*) call site: 00000 /src/icu/source/common/uloc.cpp:1903
60 156 2 :

['icu_59::ReorderingBuffer::appendZeroCC(char16_t const*, char16_t const*, UErrorCode&)', 'u_strchr_59']

60 156 icu_59::Normalizer2Impl::composeAndAppend(char16_tconst*,char16_tconst*,signedchar,signedchar,icu_59::UnicodeString&,icu_59::ReorderingBuffer&,UErrorCode&)const call site: 00000 /src/icu/source/common/normalizer2impl.cpp:1474
55 55 1 :

['icu_59::Edits::addReplace(int, int)']

55 55 appendResult(char16_t*,int,int,int,char16_tconst*,int,unsignedint,icu_59::Edits*) call site: 00000 /src/icu/source/common/ustrcase.cpp:91
52 52 1 :

['icu_59::UTS46::checkLabelContextO(char16_t const*, int, icu_59::IDNAInfo&) const']

52 656 icu_59::UTS46::processLabel(icu_59::UnicodeString&,int,int,signedchar,icu_59::IDNAInfo&,UErrorCode&)const call site: 00000 /src/icu/source/common/uts46.cpp:837
43 43 1 :

['_idn2_contexto_rule']

43 110 _idn2_label_test call site: 00202 /src/libidn2/lib/idna.c:233
42 42 1 :

['ucnv_unloadSharedDataIfReady_59']

42 46 ucnv_close_59 call site: 00000 /src/icu/source/common/ucnv.cpp:385
42 42 1 :

['ucnv_unloadSharedDataIfReady_59']

42 42 ucnv_createConverterFromSharedData_59 call site: 00000 /src/icu/source/common/ucnv_bld.cpp:981

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 fmemopen [call site] 00002
1 __assert_fail [call site] 00003
1 psl_load_fp [function] [call site] 00004
2 calloc [call site] 00005
2 fgets [call site] 00006
2 strlen [call site] 00007
2 atoi [call site] 00008
2 fread [call site] 00009
2 realloc [call site] 00010
2 realloc [call site] 00011
2 GetUtfMode [function] [call site] 00012
2 psl_idna_open [function] [call site] 00013
2 vector_alloc [function] [call site] 00014
3 calloc [call site] 00015
2 isspace_ascii [function] [call site] 00016
2 strstr [call site] 00017
2 strstr [call site] 00018
2 strstr [call site] 00019
2 strstr [call site] 00020
2 isspace_ascii [function] [call site] 00021
2 suffix_init [function] [call site] 00022
2 vector_find [function] [call site] 00023
2 vector_get [function] [call site] 00024
2 vector_add [function] [call site] 00025
3 realloc [call site] 00026
2 add_punycode_if_needed [function] [call site] 00027
3 str_is_ascii [function] [call site] 00028
3 psl_idna_toASCII [function] [call site] 00029
4 u8_strlen [function] [call site] 00030
5 strlen [call site] 00031
4 u8_tolower [function] [call site] 00032
5 libunistring_u8_casemap [function] [call site] 00033
6 u8_mbtouc_unsafe [function] [call site] 00034
6 libunistring_gl_unicase_special_lookup [function] [call site] 00035
7 gl_unicase_special_hash [function] [call site] 00036
7 memcmp [call site] 00037
6 libunistring_uc_is_cased [function] [call site] 00038
7 bitmap_lookup [function] [call site] 00039
6 u8_mbtouc_unsafe [function] [call site] 00040
6 libunistring_uc_is_case_ignorable [function] [call site] 00041
7 bitmap_lookup [function] [call site] 00042
6 libunistring_uc_is_cased [function] [call site] 00043
6 libunistring_uc_is_cased [function] [call site] 00044
6 uc_is_property_soft_dotted [function] [call site] 00045
7 bitmap_lookup [function] [call site] 00046
6 u8_mbtouc_unsafe [function] [call site] 00047
6 uc_combining_class [function] [call site] 00048
6 u8_mbtouc_unsafe [function] [call site] 00049
6 uc_combining_class [function] [call site] 00050
6 abort [call site] 00051
6 u8_uctomb [function] [call site] 00052
6 __errno_location [call site] 00053
6 abort [call site] 00054
6 __errno_location [call site] 00055
6 __errno_location [call site] 00056
6 realloc [call site] 00058
6 __errno_location [call site] 00059
6 u8_uctomb [function] [call site] 00060
6 __errno_location [call site] 00061
6 abort [call site] 00062
6 libunistring_uc_is_case_ignorable [function] [call site] 00063
6 uc_combining_class [function] [call site] 00064
6 u8_normalize [function] [call site] 00065
7 u8_mbtouc_unsafe [function] [call site] 00066
7 abort [call site] 00067
7 abort [call site] 00068
7 uc_combining_class [function] [call site] 00069
7 libunistring_gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00070
8 libunistring_gl_uninorm_decompose_merge_sort_inplace [function] [call site] 00071
9 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00072
10 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00073
11 gl_uninorm_decompose_merge_sort_fromto [function] [call site] 00074
7 u8_uctomb [function] [call site] 00077
7 __errno_location [call site] 00078
7 abort [call site] 00079
7 __errno_location [call site] 00080
7 realloc [call site] 00082
7 __errno_location [call site] 00083
7 u8_uctomb [function] [call site] 00084
7 __errno_location [call site] 00085
7 abort [call site] 00086
7 abort [call site] 00087
7 __errno_location [call site] 00088
7 libunistring_rpl_free [function] [call site] 00089
8 __errno_location [call site] 00090
7 __errno_location [call site] 00091
7 realloc [call site] 00092
7 abort [call site] 00093
7 libunistring_rpl_free [function] [call site] 00094
7 __errno_location [call site] 00095
7 libunistring_rpl_free [function] [call site] 00096
7 libunistring_rpl_free [function] [call site] 00097
7 __errno_location [call site] 00098
6 libunistring_rpl_free [function] [call site] 00099
6 __errno_location [call site] 00100
6 realloc [call site] 00101
6 __errno_location [call site] 00102
6 libunistring_rpl_free [function] [call site] 00103
6 __errno_location [call site] 00104
5 uc_tolower [function] [call site] 00105
4 idn2_lookup_u8 [function] [call site] 00106
5 set_default_flags [function] [call site] 00107
5 _tr46 [function] [call site] 00108
6 u8_strlen [function] [call site] 00109
6 u8_to_u32 [function] [call site] 00110
7 u8_mbtoucr [function] [call site] 00111
7 libunistring_rpl_free [function] [call site] 00112
7 __errno_location [call site] 00113
7 realloc [call site] 00114
7 libunistring_rpl_free [function] [call site] 00115
7 __errno_location [call site] 00116
7 __errno_location [call site] 00117
7 realloc [call site] 00118
6 __errno_location [call site] 00119
6 get_idna_map [function] [call site] 00120
7 bsearch [call site] 00121
7 _compare_idna_map [function] [call site] 00122
8 _fill_map [function] [call site] 00123
7 bsearch [call site] 00124
7 _compare_idna_map [function] [call site] 00125
7 bsearch [call site] 00126
7 _compare_idna_map [function] [call site] 00127
7 _fill_map [function] [call site] 00128
6 get_idna_map [function] [call site] 00139
6 get_map_data [function] [call site] 00142
6 get_map_data [function] [call site] 00146
6 get_map_data [function] [call site] 00149
6 u32_normalize [function] [call site] 00151
7 u32_mbtouc_unsafe [function] [call site] 00152
7 u32_uctomb [function] [call site] 00153
7 u32_uctomb [function] [call site] 00154
6 __errno_location [call site] 00156
6 u32_to_u8 [function] [call site] 00157
7 u8_uctomb [function] [call site] 00158
7 libunistring_rpl_free [function] [call site] 00159
7 __errno_location [call site] 00160
7 realloc [call site] 00161
7 libunistring_rpl_free [function] [call site] 00162
7 __errno_location [call site] 00163
7 u8_uctomb [function] [call site] 00164
7 abort [call site] 00165
7 __errno_location [call site] 00166
7 realloc [call site] 00167
6 __errno_location [call site] 00169
6 _idn2_punycode_decode_internal [function] [call site] 00170
6 _idn2_label_test [function] [call site] 00175
7 u32_normalize [function] [call site] 00176
7 __errno_location [call site] 00177
7 memcmp [call site] 00178
7 uc_is_general_category [function] [call site] 00180
8 bitmap_lookup [function] [call site] 00181
7 _idn2_disallowed_p [function] [call site] 00182
8 property [function] [call site] 00183
9 bsearch [call site] 00184
7 get_idna_map [function] [call site] 00186
7 _idn2_contextj_p [function] [call site] 00189
7 _idn2_contextj_rule [function] [call site] 00191
8 _idn2_contextj_p [function] [call site] 00192
8 uc_combining_class [function] [call site] 00193
8 uc_joining_type [function] [call site] 00194
9 uc_is_general_category_withtable [function] [call site] 00195
10 lookup_withtable [function] [call site] 00196
8 uc_joining_type [function] [call site] 00197
8 uc_combining_class [function] [call site] 00198
7 _idn2_contexto_p [function] [call site] 00199
7 _idn2_contexto_p [function] [call site] 00201
7 _idn2_contexto_with_rule [function] [call site] 00202
7 _idn2_contexto_rule [function] [call site] 00203
8 _idn2_contexto_p [function] [call site] 00204
8 _uc_script_name [function] [call site] 00205
9 uc_script [function] [call site] 00206
8 strcmp [call site] 00207
8 _uc_script_name [function] [call site] 00208
8 strcmp [call site] 00209
8 _uc_script_name [function] [call site] 00210
8 strcmp [call site] 00211
8 _uc_script_name [function] [call site] 00212
8 strcmp [call site] 00213
8 _uc_script_name [function] [call site] 00214
8 strcmp [call site] 00215
7 _idn2_unassigned_p [function] [call site] 00216
7 _idn2_bidi [function] [call site] 00218
8 _isBidi [function] [call site] 00219
9 uc_bidi_category [function] [call site] 00220
10 uc_bidi_class [function] [call site] 00221
8 uc_bidi_category [function] [call site] 00222
8 uc_bidi_category [function] [call site] 00223
8 uc_bidi_category [function] [call site] 00224
7 get_idna_map [function] [call site] 00225
6 _idn2_label_test [function] [call site] 00230
6 u32_to_u8 [function] [call site] 00231
6 __errno_location [call site] 00233
5 strchrnul [call site] 00235
5 label [function] [call site] 00236
6 _idn2_ascii_p [function] [call site] 00237
6 memcmp [call site] 00238
6 _idn2_punycode_decode_internal [function] [call site] 00239
6 u32_to_u8 [function] [call site] 00240
6 _idn2_u8_to_u32_nfc [function] [call site] 00241
7 u8_to_u32 [function] [call site] 00242
7 __errno_location [call site] 00243
7 _isNFC [function] [call site] 00244
8 uc_combining_class [function] [call site] 00245
8 get_nfcqc_map [function] [call site] 00246
9 bsearch [call site] 00247
9 _compare_nfcqc_map [function] [call site] 00248
7 u32_normalize [function] [call site] 00249
7 __errno_location [call site] 00251
6 _idn2_label_test [function] [call site] 00252
6 _idn2_punycode_encode_internal [function] [call site] 00253
7 encode_digit [function] [call site] 00254
7 encode_digit [function] [call site] 00255
6 c_strncasecmp [function] [call site] 00257
6 _idn2_punycode_decode_internal [function] [call site] 00260
3 strcmp [call site] 00268
3 strlen [call site] 00269
3 suffix_init [function] [call site] 00270
3 vector_add [function] [call site] 00271
2 fgets [call site] 00272
2 vector_sort [function] [call site] 00273
3 qsort [call site] 00274
2 psl_idna_close [function] [call site] 00275
2 psl_free [function] [call site] 00276
3 vector_free [function] [call site] 00277
1 psl_is_public_suffix [function] [call site] 00278
2 is_public_suffix [function] [call site] 00279
3 psl_idna_open [function] [call site] 00280
3 psl_idna_toASCII [function] [call site] 00281
3 strlen [call site] 00282
3 psl_idna_close [function] [call site] 00283
3 LookupStringInFixedSet [function] [call site] 00284
4 GetNextOffset [function] [call site] 00285
4 IsMatch [function] [call site] 00287
5 IsMatchUnchecked [function] [call site] 00288
6 GetMultibyteLength [function] [call site] 00289
4 NextPos [function] [call site] 00290
5 GetMultibyteLength [function] [call site] 00291
5 GetMultibyteLength [function] [call site] 00292
4 GetReturnValue [function] [call site] 00296
4 IsEndCharMatch [function] [call site] 00297
5 IsMatchUnchecked [function] [call site] 00298
3 strchr [call site] 00300
3 strlen [call site] 00301
3 LookupStringInFixedSet [function] [call site] 00302
3 vector_get [function] [call site] 00303
3 vector_find [function] [call site] 00304
3 strchr [call site] 00305
3 strlen [call site] 00306
3 vector_find [function] [call site] 00307
1 psl_is_public_suffix [function] [call site] 00308
1 psl_suffix_wildcard_count [function] [call site] 00309
1 psl_suffix_exception_count [function] [call site] 00310
1 psl_suffix_count [function] [call site] 00311
1 fclose [call site] 00313
1 psl_latest [function] [call site] 00314
2 insert_file [function] [call site] 00315
3 stat [call site] 00316
2 insert_file [function] [call site] 00317
2 insert_file [function] [call site] 00318
2 psl_load_file [function] [call site] 00319
3 fopen [call site] 00320
3 psl_load_fp [function] [call site] 00321
3 fclose [call site] 00322
2 psl_builtin [function] [call site] 00323