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 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
1 84 parso.python.diff._NodesTreeNode.add_tree_nodes call site: {node_id} parso.python.diff._NodesTree._update_parsed_node_tos

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 <builtin>.isinstance [function] [call site] 00008
4 parso.utils._parse_version [function] [call site] 00009
5 match.group [function] [call site] 00011
5 <builtin>.int [function] [call site] 00012
5 match.group [function] [call site] 00013
5 <builtin>.int [function] [call site] 00014
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 <builtin>.open [function] [call site] 00019
3 parso.grammar.PythonGrammar.__init__ [function] [call site] 00021
4 <builtin>.super [function] [call site] 00022
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 <builtin>.len [function] [call site] 00031
2 difflib.SequenceMatcher [function] [call site] 00032
2 sm.get_opcodes [function] [call site] 00033
2 <builtin>.len [function] [call site] 00034
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 <builtin>.len [function] [call site] 00050
6 <builtin>.len [function] [call site] 00051
6 <builtin>.next [function] [call site] 00052
6 <builtin>.len [function] [call site] 00054
6 <builtin>.repr [function] [call site] 00055
6 <builtin>.len [function] [call site] 00056
6 typing.NamedTuple.__init__ [function] [call site] 00057
6 <builtin>.len [function] [call site] 00058
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 <builtin>.reversed [function] [call site] 00061
7 <builtin>.len [function] [call site] 00062
6 typing.NamedTuple.__init__ [function] [call site] 00063
6 <builtin>.list [function] [call site] 00064
5 parso.python.parser.Parser.__init__ [function] [call site] 00065
6 <builtin>.super [function] [call site] 00066
5 parso.python.parser.Parser.parse [function] [call site] 00067
6 parso.python.parser.Parser._recovery_tokenize [function] [call site] 00068
6 <builtin>.super [function] [call site] 00070
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
6 <builtin>.max [function] [call site] 00075
5 parso.python.diff._NodesTree._update_insertion_node [function] [call site] 00076
6 <builtin>.list [function] [call site] 00077
6 <builtin>.reversed [function] [call site] 00078
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 <builtin>.list [function] [call site] 00082
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 <builtin>.list [function] [call site] 00092
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 <builtin>.iter [function] [call site] 00096
6 <builtin>.next [function] [call site] 00097
6 <builtin>.next [function] [call site] 00098
6 parso.python.diff._get_indentation [function] [call site] 00099
6 parso.python.diff._get_indentation [function] [call site] 00100
5 <builtin>.list [function] [call site] 00101
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 <builtin>.len [function] [call site] 00113
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 <builtin>.len [function] [call site] 00122
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 <builtin>.enumerate [function] [call site] 00128
6 merge.append [function] [call site] 00129
6 <builtin>.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
4 <builtin>.list [function] [call site] 00136
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 <builtin>.list [function] [call site] 00150
3 parso.utils.split_lines [function] [call site] 00151
3 <builtin>.len [function] [call site] 00152
3 <builtin>.len [function] [call site] 00153
3 <builtin>.len [function] [call site] 00154
3 <builtin>.len [function] [call site] 00155
3 <builtin>.len [function] [call site] 00156
3 <builtin>.tuple [function] [call site] 00157
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 <builtin>.len [function] [call site] 00165
3 <builtin>.len [function] [call site] 00166
3 <builtin>.len [function] [call site] 00167
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 <builtin>.hasattr [function] [call site] 00174
3 <builtin>.zip [function] [call site] 00175
3 parso.python.diff._assert_nodes_are_equal [function] [call site] 00176
3 <builtin>.len [function] [call site] 00177
3 <builtin>.len [function] [call site] 00178
3 <builtin>.repr [function] [call site] 00179
3 <builtin>.repr [function] [call site] 00180
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 <builtin>.print [function] [call site] 00186
2 LOG.debug [function] [call site] 00187