Fuzz introspector: fuzz_lexers
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
181 24 ...fuzz_lexers.TestOneInput call site: 00024 pygments.lex
36 226 pygments.util.get_list_opt call site: 00226 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed
5 208 pygments.util.get_bool_opt call site: 00208 .isinstance
3 14 pygments.plugin.iter_entry_points call site: 00014 importlib.metadata.entry_points.get
2 2 ...fuzz_lexers.TestOneInput call site: 00002 pygments.lexers.get_lexer_by_name
1 0 EP call site: 00000 .len
1 6 pygments.lexers.get_lexer_by_name call site: 00006 pygments.lexers._load_lexers
1 22 ...fuzz_lexers.TestOneInput call site: 00022 fdp.ConsumeUnicode
1 223 pygments.util.get_list_opt call site: 00223 val.split

Fuzzer calltree

0 ...fuzz_lexers.TestOneInput [function] [call site] 00000
1 <builtin>.len [function] [call site] 00001
1 atheris.FuzzedDataProvider [function] [call site] 00002
1 fdp.PickValueInList [function] [call site] 00003
1 pygments.lexers.get_lexer_by_name [function] [call site] 00004
2 LEXERS.values [function] [call site] 00005
2 _alias.lower [function] [call site] 00006
2 pygments.lexers._load_lexers [function] [call site] 00007
3 <builtin>.__import__ [function] [call site] 00008
3 <builtin>.getattr [function] [call site] 00009
2 pygments.plugin.find_plugin_lexers [function] [call site] 00010
3 pygments.plugin.iter_entry_points [function] [call site] 00011
4 importlib.metadata.entry_points [function] [call site] 00012
4 <builtin>.hasattr [function] [call site] 00013
4 importlib.metadata.entry_points.select [function] [call site] 00014
4 importlib.metadata.entry_points.get [function] [call site] 00015
3 entrypoint.load [function] [call site] 00016
2 _alias.lower [function] [call site] 00017
1 pygments.filters.FILTERS.keys [function] [call site] 00018
1 <builtin>.list [function] [call site] 00019
1 fdp.PickValueInList [function] [call site] 00020
1 random_lexer.add_filter [function] [call site] 00021
1 fdp.PickValueInList [function] [call site] 00022
1 fdp.ConsumeUnicode [function] [call site] 00023
1 pygments.highlight [function] [call site] 00024
2 pygments.lex [function] [call site] 00025
3 pygments.lexer.Lexer.get_tokens [function] [call site] 00026
4 pygments.lexer.Lexer._preprocess_lexer_input [function] [call site] 00027
5 <builtin>.isinstance [function] [call site] 00028
5 pygments.util.guess_decode [function] [call site] 00029
6 text.decode [function] [call site] 00030
6 locale.getpreferredencoding [function] [call site] 00031
6 text.decode [function] [call site] 00032
6 text.decode [function] [call site] 00033
5 text.startswith [function] [call site] 00034
5 <builtin>.len [function] [call site] 00035
5 chardet.detect [function] [call site] 00036
5 text.decode [function] [call site] 00038
5 text.decode [function] [call site] 00039
5 text.startswith [function] [call site] 00040
5 <builtin>.len [function] [call site] 00041
5 text.startswith [function] [call site] 00042
5 <builtin>.len [function] [call site] 00043
5 text.replace [function] [call site] 00044
5 text.replace [function] [call site] 00045
5 text.strip [function] [call site] 00046
5 text.strip [function] [call site] 00047
5 text.expandtabs [function] [call site] 00048
5 text.endswith [function] [call site] 00049
4 pygments.lexer.Lexer.get_tokens.streamer [function] [call site] 00050
5 pygments.lexers.pascal.DelphiLexer.get_tokens_unprocessed [function] [call site] 00051
6 pygments.scanner.Scanner.__init__ [function] [call site] 00052
7 <builtin>.len [function] [call site] 00053
6 <builtin>.set [function] [call site] 00054
6 pygments.scanner.Scanner.scan [function] [call site] 00055
6 pygments.scanner.Scanner.scan [function] [call site] 00060
6 scanner.match.startswith [function] [call site] 00061
6 pygments.scanner.Scanner.scan [function] [call site] 00062
6 pygments.scanner.Scanner.scan [function] [call site] 00063
6 pygments.scanner.Scanner.scan [function] [call site] 00064
6 pygments.scanner.Scanner.scan [function] [call site] 00065
6 pygments.scanner.Scanner.scan [function] [call site] 00066
6 scanner.match.lower [function] [call site] 00067
6 <builtin>.set [function] [call site] 00068
6 stack.append [function] [call site] 00069
6 pygments.scanner.Scanner.test [function] [call site] 00070
7 pygments.scanner.Scanner.check [function] [call site] 00071
8 re.compile [function] [call site] 00072
6 scanner.match.lower [function] [call site] 00073
6 block_labels.add [function] [call site] 00074
6 scanner.match.lower [function] [call site] 00075
6 block_labels.add [function] [call site] 00076
6 pygments.scanner.Scanner.scan [function] [call site] 00077
6 stack.append [function] [call site] 00078
6 pygments.scanner.Scanner.scan [function] [call site] 00079
6 stack.append [function] [call site] 00080
6 pygments.scanner.Scanner.scan [function] [call site] 00081
6 pygments.scanner.Scanner.scan [function] [call site] 00082
6 pygments.scanner.Scanner.scan [function] [call site] 00083
6 pygments.scanner.Scanner.scan [function] [call site] 00084
6 <builtin>.len [function] [call site] 00085
6 stack.pop [function] [call site] 00086
6 pygments.scanner.Scanner.get_char [function] [call site] 00087
7 pygments.scanner.Scanner.scan [function] [call site] 00088
6 pygments.scanner.Scanner.scan [function] [call site] 00089
6 pygments.scanner.Scanner.scan [function] [call site] 00090
6 stack.pop [function] [call site] 00091
6 pygments.scanner.Scanner.scan [function] [call site] 00092
6 pygments.scanner.Scanner.get_char [function] [call site] 00093
6 stack.pop [function] [call site] 00094
6 pygments.scanner.Scanner.scan [function] [call site] 00095
6 pygments.scanner.Scanner.scan [function] [call site] 00096
6 stack.pop [function] [call site] 00097
6 pygments.scanner.Scanner.scan [function] [call site] 00098
6 pygments.scanner.Scanner.get_char [function] [call site] 00099
6 stack.pop [function] [call site] 00100
6 pygments.scanner.Scanner.scan [function] [call site] 00101
6 pygments.scanner.Scanner.scan [function] [call site] 00102
6 stack.pop [function] [call site] 00103
6 pygments.scanner.Scanner.scan [function] [call site] 00104
6 scanner.match.startswith [function] [call site] 00105
6 pygments.scanner.Scanner.scan [function] [call site] 00106
6 pygments.scanner.Scanner.scan [function] [call site] 00107
6 stack.append [function] [call site] 00108
6 pygments.scanner.Scanner.scan [function] [call site] 00109
6 pygments.scanner.Scanner.scan [function] [call site] 00110
6 scanner.match.lower [function] [call site] 00111
6 pygments.scanner.Scanner.scan [function] [call site] 00112
6 pygments.scanner.Scanner.scan [function] [call site] 00113
6 pygments.scanner.Scanner.scan [function] [call site] 00114
6 pygments.scanner.Scanner.scan [function] [call site] 00115
6 pygments.scanner.Scanner.scan [function] [call site] 00116
6 pygments.scanner.Scanner.get_char [function] [call site] 00117
6 stack.pop [function] [call site] 00118
6 scanner.match.strip [function] [call site] 00119
5 pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed [function] [call site] 00120
6 pygments.formatters.latex.LatexEmbeddedLexer._find_safe_escape_tokens [function] [call site] 00121
7 pygments.formatters.latex.LatexEmbeddedLexer._filter_to [function] [call site] 00122
7 pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed [function] [call site] 00123
7 pygments.lexers.special.TextLexer.get_tokens_unprocessed [function] [call site] 00124
7 pygments.formatters.latex.LatexEmbeddedLexer._find_escape_tokens [function] [call site] 00125
8 text.partition [function] [call site] 00126
8 <builtin>.len [function] [call site] 00127
8 text.partition [function] [call site] 00128
8 <builtin>.len [function] [call site] 00129
8 <builtin>.len [function] [call site] 00130
8 <builtin>.len [function] [call site] 00131
8 <builtin>.len [function] [call site] 00132
8 <builtin>.len [function] [call site] 00133
6 <builtin>.len [function] [call site] 00134
6 insertions.append [function] [call site] 00135
6 insertion_buf.append [function] [call site] 00136
6 <builtin>.len [function] [call site] 00137
6 insertions.append [function] [call site] 00138
6 pygments.lexer.do_insertions [function] [call site] 00139
7 <builtin>.iter [function] [call site] 00140
7 <builtin>.next [function] [call site] 00141
7 <builtin>.len [function] [call site] 00142
7 <builtin>.len [function] [call site] 00143
7 <builtin>.len [function] [call site] 00144
7 <builtin>.next [function] [call site] 00145
7 <builtin>.len [function] [call site] 00146
7 <builtin>.len [function] [call site] 00147
7 <builtin>.len [function] [call site] 00148
7 <builtin>.next [function] [call site] 00149
6 pygments.formatters.latex.LatexEmbeddedLexer.get_tokens_unprocessed [function] [call site] 00150
6 pygments.lexers.special.TextLexer.get_tokens_unprocessed [function] [call site] 00151
5 pygments.lexers.data.JsonLexer.get_tokens_unprocessed [function] [call site] 00152
6 <builtin>.enumerate [function] [call site] 00153
6 queue.append [function] [call site] 00154
6 queue.append [function] [call site] 00155
6 queue.append [function] [call site] 00156
6 queue.append [function] [call site] 00157
6 queue.clear [function] [call site] 00158
6 queue.clear [function] [call site] 00159
6 queue.clear [function] [call site] 00160
6 queue.clear [function] [call site] 00161
6 queue.clear [function] [call site] 00162
6 queue.clear [function] [call site] 00163
5 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00164
6 <builtin>.super [function] [call site] 00165
5 pygments.lexers.special.TextLexer.get_tokens_unprocessed [function] [call site] 00166
5 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00167
6 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00168
7 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00169
7 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00170
8 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00171
8 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00172
8 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00173
9 stack.append [function] [call site] 00174
9 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00175
9 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00176
9 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00177
9 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00178
9 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00179
10 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00180
10 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00181
10 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00182
10 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00183
10 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00184
10 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00185
9 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00186
8 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00187
8 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00188
8 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00189
8 value.split [function] [call site] 00190
8 <builtin>.len [function] [call site] 00191
8 <builtin>.len [function] [call site] 00192
7 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00193
7 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00194
7 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00195
7 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00196
6 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00197
6 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00198
6 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00199
6 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00200
6 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00201
6 value.lower [function] [call site] 00202
5 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00203
5 pygments.lexers.templates.CheetahPythonLexer.get_tokens_unprocessed [function] [call site] 00204
6 pygments.lexer.Lexer.__init__ [function] [call site] 00205
7 pygments.util.get_bool_opt [function] [call site] 00206
8 options.get [function] [call site] 00207
8 <builtin>.isinstance [function] [call site] 00208
8 <builtin>.isinstance [function] [call site] 00209
8 <builtin>.bool [function] [call site] 00210
8 <builtin>.isinstance [function] [call site] 00211
8 string.lower [function] [call site] 00212
8 string.lower [function] [call site] 00213
7 pygments.util.get_bool_opt [function] [call site] 00214
7 pygments.util.get_bool_opt [function] [call site] 00215
7 pygments.util.get_int_opt [function] [call site] 00216
8 options.get [function] [call site] 00217
8 <builtin>.int [function] [call site] 00218
7 options.get [function] [call site] 00219
7 options.get [function] [call site] 00220
7 pygments.util.get_list_opt [function] [call site] 00221
8 options.get [function] [call site] 00222
8 <builtin>.isinstance [function] [call site] 00223
8 val.split [function] [call site] 00224
8 <builtin>.isinstance [function] [call site] 00225
8 <builtin>.list [function] [call site] 00226
7 pygments.lexer.Lexer.add_filter [function] [call site] 00227
8 <builtin>.isinstance [function] [call site] 00228
8 pygments.filters.get_filter_by_name [function] [call site] 00229
9 pygments.filters.find_filter_class [function] [call site] 00230
10 pygments.plugin.find_plugin_filters [function] [call site] 00231
11 pygments.plugin.iter_entry_points [function] [call site] 00232
11 entrypoint.load [function] [call site] 00233
6 pygments.lexers.haskell.CryptolLexer.get_tokens_unprocessed [function] [call site] 00234
6 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00235
6 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00236
6 pygments.lexers.lilypond.LilyPondLexer.get_tokens_unprocessed [function] [call site] 00237
6 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00238
6 pygments.lexers.dylan.DylanLexer.get_tokens_unprocessed [function] [call site] 00239
5 pygments.lexers.php.PhpLexer.get_tokens_unprocessed [function] [call site] 00240
5 pygments.lexers.scripting.LuaLexer.get_tokens_unprocessed [function] [call site] 00241
5 pygments.lexers.erlang.ElixirLexer.get_tokens_unprocessed [function] [call site] 00242
4 pygments.filter.apply_filters [function] [call site] 00243
5 pygments.filter.apply_filters._apply [function] [call site] 00244
6 filter_.filter [function] [call site] 00245
3 <builtin>.isinstance [function] [call site] 00246
3 <builtin>.issubclass [function] [call site] 00247
2 pygments.format [function] [call site] 00248
3 <builtin>.getattr [function] [call site] 00249
3 io.BytesIO [function] [call site] 00250
3 io.StringIO [function] [call site] 00251
3 pygments.formatters.terminal256.Terminal256Formatter.format [function] [call site] 00252
4 pygments.formatters.terminal256.Terminal256Formatter.format [function] [call site] 00253
4 pygments.formatters.terminal.TerminalFormatter.format [function] [call site] 00254
5 pygments.formatters.terminal256.Terminal256Formatter.format [function] [call site] 00255
5 pygments.formatters.terminal.TerminalFormatter.format [function] [call site] 00256
3 pygments.formatters.terminal.TerminalFormatter.format [function] [call site] 00257
3 realoutfile.getvalue [function] [call site] 00258
3 pygments.formatters.terminal256.Terminal256Formatter.format [function] [call site] 00259
3 pygments.formatters.terminal.TerminalFormatter.format [function] [call site] 00260
3 <builtin>.isinstance [function] [call site] 00261
3 <builtin>.issubclass [function] [call site] 00262