Fuzz introspector: libpsl_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
173 173 3 :

['strlen', 'strchr', 'is_public_suffix']

173 173 psl_registrable_domain call site: 00052 /src/libpsl/src/psl.c:1112
0 0 None 173 173 psl_unregistrable_domain call site: 00048 /src/libpsl/src/psl.c:1058
0 0 None 169 169 psl_is_public_suffix call site: 00003 /src/libpsl/src/psl.c:992
0 0 None 169 169 psl_is_public_suffix2 call site: 00043 /src/libpsl/src/psl.c:1027
0 0 None 15 193 psl_is_cookie_domain_acceptable call site: 00056 /src/libpsl/src/psl.c:1644
0 0 None 6 9 psl_str_to_utf8lower call site: 00066 /src/libpsl/src/psl.c:1720
0 0 None 4 4 psl_str_to_utf8lower call site: 00068 /src/libpsl/src/psl.c:1728
0 0 None 0 0 psl_builtin_outdated call site: 00080 /src/libpsl/src/psl.c:1510
0 0 None 0 0 psl_check_version_number call site: 00076 /src/libpsl/src/psl.c:1570

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 psl_builtin [function] [call site] 00002
1 psl_is_public_suffix [function] [call site] 00003
2 is_public_suffix [function] [call site] 00004
3 psl_idna_open [function] [call site] 00005
3 psl_idna_toASCII [function] [call site] 00006
4 domain_to_punycode [function] [call site] 00007
5 strchr [call site] 00008
5 strlen [call site] 00009
5 mem_is_ascii [function] [call site] 00010
5 utf8_to_utf32 [function] [call site] 00011
5 punycode_encode [function] [call site] 00012
6 encode_digit [function] [call site] 00013
6 encode_digit [function] [call site] 00014
4 strdup [call site] 00016
3 strlen [call site] 00017
3 psl_idna_close [function] [call site] 00018
3 LookupStringInFixedSet [function] [call site] 00019
4 GetNextOffset [function] [call site] 00020
4 IsMatch [function] [call site] 00022
5 IsMatchUnchecked [function] [call site] 00023
6 GetMultibyteLength [function] [call site] 00024
4 NextPos [function] [call site] 00025
5 GetMultibyteLength [function] [call site] 00026
5 GetMultibyteLength [function] [call site] 00027
4 GetReturnValue [function] [call site] 00031
4 IsEndCharMatch [function] [call site] 00032
5 IsMatchUnchecked [function] [call site] 00033
3 strchr [call site] 00035
3 strlen [call site] 00036
3 LookupStringInFixedSet [function] [call site] 00037
3 vector_get [function] [call site] 00038
3 vector_find [function] [call site] 00039
3 strchr [call site] 00040
3 strlen [call site] 00041
3 vector_find [function] [call site] 00042
1 psl_is_public_suffix2 [function] [call site] 00043
2 is_public_suffix [function] [call site] 00044
1 psl_is_public_suffix2 [function] [call site] 00045
1 psl_is_public_suffix2 [function] [call site] 00046
1 psl_is_public_suffix2 [function] [call site] 00047
1 psl_unregistrable_domain [function] [call site] 00048
2 strlen [call site] 00049
2 is_public_suffix [function] [call site] 00050
2 strchr [call site] 00051
1 psl_registrable_domain [function] [call site] 00052
2 strlen [call site] 00053
2 is_public_suffix [function] [call site] 00054
2 strchr [call site] 00055
1 psl_is_cookie_domain_acceptable [function] [call site] 00056
2 strcmp [call site] 00057
2 isip [function] [call site] 00058
3 inet_pton [call site] 00059
2 strlen [call site] 00060
2 strlen [call site] 00061
2 strcmp [call site] 00062
2 psl_unregistrable_domain [function] [call site] 00063
2 strlen [call site] 00064
1 psl_is_cookie_domain_acceptable [function] [call site] 00065
1 psl_str_to_utf8lower [function] [call site] 00066
2 str_is_ascii [function] [call site] 00067
2 strdup [call site] 00068
2 __ctype_b_loc [call site] 00069
2 tolower [call site] 00070
1 psl_str_to_utf8lower [function] [call site] 00071
1 psl_str_to_utf8lower [function] [call site] 00072
1 psl_free [function] [call site] 00073
2 vector_free [function] [call site] 00074
1 psl_is_public_suffix [function] [call site] 00075
1 psl_check_version_number [function] [call site] 00076
1 psl_get_version [function] [call site] 00077
1 psl_dist_filename [function] [call site] 00078
1 psl_builtin_outdated [function] [call site] 00079
2 stat [call site] 00080
1 psl_builtin_filename [function] [call site] 00081
1 psl_builtin_sha1sum [function] [call site] 00082
1 psl_builtin_file_time [function] [call site] 00083