Fuzz introspector: parso_diff_fuzz
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
38 88 parso.python.diff.DiffParser._parse call site: {node_id} parso.python.diff._NodesTree._copy_nodes
24 162 parso.python.diff._get_previous_leaf_if_indentation call site: {node_id} parso.python.diff._assert_valid_graph
14 50 parso.python.diff.DiffParser._diff_tokenize call site: {node_id} parso.python.diff._suite_or_file_input_is_valid
4 134 parso.utils.split_lines call site: {node_id} parso.python.diff.DiffParser._parse
4 144 parso.python.diff._get_next_leaf_if_indentation call site: {node_id} parso.python.diff._update_positions
3 36 parso.python.diff.DiffParser.update call site: {node_id} parso.python.diff.DiffParser._copy_from_old_parser
3 44 parso.python.diff._ends_with_newline call site: {node_id} parso.python.diff.DiffParser._parse
3 80 parso.python.diff._NodesTree.add_parsed_nodes call site: {node_id} parso.python.diff._NodesTreeNode.add_tree_nodes
3 158 parso.python.diff._NodesTree.close call site: {node_id} parso.python.diff._assert_valid_graph
2 4 ...parso_diff_fuzz.TestOneInput call site: {node_id} parso.grammar.load_grammar
2 40 parso.python.diff._ends_with_newline call site: {node_id} leaf.get_previous_leaf
2 154 parso.python.diff._NodesTree.close call site: {node_id} .len

Fuzzer calltree

0 ...parso_diff_fuzz.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 parso.load_grammar [function] [call site] 00002
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00003
1 parso.parse [function] [call site] 00004
2 kwargs.pop [function] [call site] 00005
2 parso.grammar.load_grammar [function] [call site] 00006
3 parso.utils.parse_version_string [function] [call site] 00007
4 .isinstance [function] [call site] 00008
4 parso.utils._parse_version [function] [call site] 00009
5 match.group [function] [call site] 00011
5 match.group [function] [call site] 00013
5 typing.NamedTuple.__init__ [function] [call site] 00015
3 os.path.join [function] [call site] 00016
3 os.path.dirname [function] [call site] 00017
3 os.path.join [function] [call site] 00018
3 parso.grammar.PythonGrammar.__init__ [function] [call site] 00021
3 _loaded_grammars.setdefault [function] [call site] 00023
2 grammar.parse [function] [call site] 00024
1 parso.python.diff.DiffParser.__init__ [function] [call site] 00025
1 parso.python.diff.DiffParser.update [function] [call site] 00026
2 LOG.debug [function] [call site] 00027
2 parso.python.diff.DiffParser._reset [function] [call site] 00028
3 parso.python.diff._NodesTree.__init__ [function] [call site] 00029
4 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00030
2 difflib.SequenceMatcher [function] [call site] 00032
2 sm.get_opcodes [function] [call site] 00033
2 LOG.debug [function] [call site] 00035
2 LOG.debug [function] [call site] 00036
2 parso.python.diff.DiffParser._copy_from_old_parser [function] [call site] 00037
3 parso.python.diff.DiffParser._get_old_line_stmt [function] [call site] 00038
4 parso.python.diff._ends_with_newline [function] [call site] 00039
5 parso.python.diff._skip_dedent_error_leaves [function] [call site] 00040
6 leaf.get_previous_leaf [function] [call site] 00041
5 leaf.token_type.lower [function] [call site] 00042
5 suffix.endswith [function] [call site] 00043
5 suffix.endswith [function] [call site] 00044
4 leaf.get_next_leaf [function] [call site] 00045
4 leaf.get_start_pos_of_prefix [function] [call site] 00046
3 parso.python.diff.DiffParser._parse [function] [call site] 00047
4 parso.python.diff.DiffParser._try_parse_part [function] [call site] 00048
5 parso.python.diff.DiffParser._diff_tokenize [function] [call site] 00049
6 typing.NamedTuple.__init__ [function] [call site] 00057
6 parso.python.diff._suite_or_file_input_is_valid [function] [call site] 00059
7 parso.python.diff._flows_finished [function] [call site] 00060
7 .reversed [function] [call site] 00061
6 typing.NamedTuple.__init__ [function] [call site] 00063
5 parso.python.parser.Parser.__init__ [function] [call site] 00065
5 parso.python.parser.Parser.parse [function] [call site] 00067
6 parso.python.parser.Parser._recovery_tokenize [function] [call site] 00068
4 parso.python.diff._NodesTree.add_parsed_nodes [function] [call site] 00071
5 parso.python.diff._NodesTree._remove_endmarker [function] [call site] 00072
6 prefix.rfind [function] [call site] 00073
6 prefix.rfind [function] [call site] 00074
5 parso.python.diff._NodesTree._update_insertion_node [function] [call site] 00076
5 node.add_tree_nodes [function] [call site] 00079
5 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00080
6 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00081
6 parso.python.diff._NodesTreeNode.add_tree_nodes [function] [call site] 00083
7 collections.namedtuple [function] [call site] 00084
6 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00085
6 parso.python.diff._func_or_class_has_suite [function] [call site] 00086
6 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00087
4 LOG.debug [function] [call site] 00088
3 p_children.index [function] [call site] 00089
3 parso.python.diff._NodesTree.copy_nodes [function] [call site] 00090
4 parso.python.diff._get_indentation [function] [call site] 00091
4 parso.python.diff._NodesTree._update_insertion_node [function] [call site] 00093
4 parso.python.diff._NodesTree._copy_nodes [function] [call site] 00094
5 parso.python.diff._NodesTree._get_matching_indent_nodes [function] [call site] 00095
6 parso.python.diff._get_indentation [function] [call site] 00099
6 parso.python.diff._get_indentation [function] [call site] 00100
5 parso.python.diff._get_last_line [function] [call site] 00102
6 node_or_leaf.get_last_leaf [function] [call site] 00103
6 parso.python.diff._ends_with_newline [function] [call site] 00104
6 last_leaf.get_next_leaf [function] [call site] 00105
5 parso.python.diff._func_or_class_has_suite [function] [call site] 00106
5 new_nodes.append [function] [call site] 00107
5 new_nodes.append [function] [call site] 00108
5 parso.python.diff._is_flow_node [function] [call site] 00109
5 new_nodes.pop [function] [call site] 00110
5 last_node.get_last_leaf [function] [call site] 00111
5 new_nodes.pop [function] [call site] 00112
5 new_nodes.pop [function] [call site] 00114
5 parso.python.diff._func_or_class_has_suite [function] [call site] 00115
5 parso.python.diff._get_suite_indentation [function] [call site] 00116
6 parso.python.diff._get_indentation [function] [call site] 00117
5 added_indents.append [function] [call site] 00118
5 parso.python.diff._get_indentation [function] [call site] 00119
5 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00120
5 parso.python.diff._NodesTree._copy_nodes [function] [call site] 00121
5 new_nodes.pop [function] [call site] 00123
5 tos.add_child_node [function] [call site] 00124
5 parso.python.diff._ends_with_newline [function] [call site] 00125
5 parso.utils.split_lines [function] [call site] 00126
6 typing.NamedTuple.string.splitlines [function] [call site] 00127
6 .enumerate [function] [call site] 00128
6 merge.append [function] [call site] 00129
6 .reversed [function] [call site] 00130
6 typing.NamedTuple.string.endswith [function] [call site] 00131
6 typing.NamedTuple.string.endswith [function] [call site] 00132
6 lst.append [function] [call site] 00133
5 tos.add_tree_nodes [function] [call site] 00135
3 LOG.debug [function] [call site] 00137
3 parso.python.diff.DiffParser._parse [function] [call site] 00138
2 parso.python.diff.DiffParser._parse [function] [call site] 00139
2 parso.python.diff.DiffParser._parse [function] [call site] 00140
2 parso.python.diff._NodesTree.close [function] [call site] 00141
3 parso.python.diff._NodesTreeNode.finish [function] [call site] 00142
4 parso.python.diff._get_next_leaf_if_indentation [function] [call site] 00143
5 parso.python.diff._is_indentation_error_leaf [function] [call site] 00144
5 leaf.get_next_leaf [function] [call site] 00145
4 parso.python.diff._update_positions [function] [call site] 00146
5 parso.python.diff._update_positions [function] [call site] 00147
4 node_child.finish [function] [call site] 00148
3 parso.python.diff._skip_dedent_error_leaves [function] [call site] 00149
3 parso.utils.split_lines [function] [call site] 00151
3 parso.tree.Leaf.__init__ [function] [call site] 00158
2 parso.python.diff._assert_valid_graph [function] [call site] 00159
3 node.get_previous_leaf [function] [call site] 00160
3 parso.python.diff._get_previous_leaf_if_indentation [function] [call site] 00161
4 parso.python.diff._is_indentation_error_leaf [function] [call site] 00162
4 leaf.get_previous_leaf [function] [call site] 00163
3 parso.utils.split_lines [function] [call site] 00164
3 content.startswith [function] [call site] 00168
3 node.get_start_pos_of_prefix [function] [call site] 00169
3 parso.python.diff._assert_valid_graph [function] [call site] 00170
2 parso.python.parser.Parser.__init__ [function] [call site] 00171
2 parso.python.parser.Parser.parse [function] [call site] 00172
2 parso.python.diff._assert_nodes_are_equal [function] [call site] 00173
3 parso.python.diff._assert_nodes_are_equal [function] [call site] 00176
2 parso.python.diff._get_debug_error_message [function] [call site] 00181
3 module.get_code [function] [call site] 00182
3 parso.utils.split_lines [function] [call site] 00183
3 difflib.unified_diff [function] [call site] 00184
3 difflib.unified_diff [function] [call site] 00185
2 LOG.debug [function] [call site] 00187