Fuzz introspector: fuzz_marker
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
60 39 distlib.markers.Evaluator.evaluate call site: 00039 distlib.markers._get_versions
5 12 distlib.util.parse_marker.marker_var call site: 00012 parts.append
1 30 distlib.markers.interpret_parsed call site: 00030 context.update

Fuzzer calltree

0 ...fuzz_marker.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00002
1 distlib.markers.interpret [function] [call site] 00003
2 distlib.util.parse_marker [function] [call site] 00004
3 distlib.util.parse_marker.marker [function] [call site] 00005
4 distlib.util.parse_marker.marker_and [function] [call site] 00006
5 distlib.util.parse_marker.marker_expr [function] [call site] 00007
6 distlib.util.parse_marker.marker [function] [call site] 00008
6 distlib.util.parse_marker.marker_var [function] [call site] 00009
7 IDENTIFIER.match [function] [call site] 00010
7 parts.append [function] [call site] 00013
7 STRING_CHUNK.match [function] [call site] 00014
7 parts.append [function] [call site] 00016
7 parts.append [function] [call site] 00018
6 MARKER_OP.match [function] [call site] 00019
6 distlib.util.parse_marker.marker_var [function] [call site] 00022
5 AND.match [function] [call site] 00023
5 distlib.util.parse_marker.marker_expr [function] [call site] 00025
4 distlib.util.parse_marker.marker_and [function] [call site] 00028
2 distlib.markers.interpret_parsed [function] [call site] 00029
3 <builtin>.dict [function] [call site] 00030
3 context.update [function] [call site] 00031
3 distlib.markers.Evaluator.evaluate [function] [call site] 00032
4 <builtin>.isinstance [function] [call site] 00033
4 <builtin>.isinstance [function] [call site] 00034
4 distlib.markers._is_literal [function] [call site] 00035
5 <builtin>.isinstance [function] [call site] 00036
4 distlib.markers._is_literal [function] [call site] 00037
4 distlib.markers.Evaluator.evaluate [function] [call site] 00038
4 distlib.markers.Evaluator.evaluate [function] [call site] 00039
4 distlib.markers._is_version_marker [function] [call site] 00040
5 <builtin>.isinstance [function] [call site] 00041
4 distlib.markers._is_version_marker [function] [call site] 00042
4 distlib.version.Version.__init__ [function] [call site] 00043
5 distlib.version.SemanticVersion.parse [function] [call site] 00045
6 distlib.version._semantic_key [function] [call site] 00046
7 distlib.version.is_semver [function] [call site] 00047
8 _SEMVER_RE.match [function] [call site] 00048
7 <builtin>.int [function] [call site] 00050
7 distlib.version._semantic_key.make_tuple [function] [call site] 00051
8 p.isdigit [function] [call site] 00052
8 <builtin>.tuple [function] [call site] 00054
7 distlib.version._semantic_key.make_tuple [function] [call site] 00055
5 distlib.version.NormalizedVersion.parse [function] [call site] 00056
6 distlib.version._pep_440_key [function] [call site] 00057
7 PEP440_VERSION_RE.match [function] [call site] 00059
7 <builtin>.int [function] [call site] 00061
7 <builtin>.tuple [function] [call site] 00062
7 <builtin>.len [function] [call site] 00063
7 <builtin>.int [function] [call site] 00064
7 <builtin>.int [function] [call site] 00065
7 <builtin>.int [function] [call site] 00066
7 <builtin>.int [function] [call site] 00067
7 local.split [function] [call site] 00068
7 part.isdigit [function] [call site] 00069
7 <builtin>.int [function] [call site] 00070
7 parts.append [function] [call site] 00071
7 <builtin>.tuple [function] [call site] 00072
6 PEP440_VERSION_RE.match [function] [call site] 00073
6 <builtin>.int [function] [call site] 00075
6 <builtin>.tuple [function] [call site] 00076
5 distlib.version.LegacyVersion.parse [function] [call site] 00077
6 distlib.version._legacy_key [function] [call site] 00078
7 distlib.version._legacy_key.get_parts [function] [call site] 00079
8 _VERSION_PART.split [function] [call site] 00081
8 _VERSION_REPLACE.get [function] [call site] 00082
8 result.append [function] [call site] 00084
8 result.append [function] [call site] 00085
7 p.startswith [function] [call site] 00086
7 result.pop [function] [call site] 00087
7 result.pop [function] [call site] 00088
7 result.append [function] [call site] 00089
7 <builtin>.tuple [function] [call site] 00090
5 <builtin>.isinstance [function] [call site] 00091
5 <builtin>.len [function] [call site] 00092
4 distlib.version.Version.__init__ [function] [call site] 00093
4 distlib.markers._is_version_marker [function] [call site] 00094
4 distlib.version.Version.__init__ [function] [call site] 00095
4 distlib.markers._get_versions [function] [call site] 00096
5 distlib.version.Version.__init__ [function] [call site] 00098
5 _VERSION_PATTERN.finditer [function] [call site] 00099