Fuzz introspector: fuzz_submodule
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
77 5 git.util.expand_path call site: 00005 datetime.timedelta.object.resolve
33 99 git.util.is_cygwin_git call site: 00099 git.util._is_cygwin_git
26 266 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.TestOneInput call site: 00266 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input
14 172 git.config.GitConfigParser.__init__ call site: 00172 git.config.get_config_path
12 253 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.TestOneInput call site: 00253 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input
10 233 git.db.GitCmdObjectDB.__init__ call site: 00233 git.repo.base.Repo.init
6 146 git.repo.fun.is_git_dir call site: 00146 os.path.join
6 214 git.repo.base.Repo.__init__ call site: 00214 git.repo.fun.find_worktree_git_dir
3 0 EP call site: 00000 git.repo.base.Repo.init
3 208 git.repo.fun.find_submodule_git_dir call site: 00208 os.path.dirname
2 166 git.repo.base.Repo._get_config_path call site: 00166 git.types.assert_never
2 197 git.repo.base.Repo.__init__ call site: 00197 configparser.RawConfigParser.get

Fuzzer calltree

0 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 tempfile.TemporaryDirectory [function] [call site] 00002
1 git.repo.base.Repo.init [function] [call site] 00003
2 git.util.expand_path [function] [call site] 00004
3 <builtin>.isinstance [function] [call site] 00005
3 datetime.timedelta.object.resolve [function] [call site] 00006
3 subprocess.Popen.tree.object.resolve [function] [call site] 00007
3 subprocess.Popen.tree.object.head.ref.commit.resolve [function] [call site] 00008
3 datetime.timedelta.tree.object.head.ref.commit.resolve [function] [call site] 00009
3 typing.BinaryIO.tree.resolve [function] [call site] 00010
3 typing.IO.tree.resolve [function] [call site] 00011
3 typing.IO.head.ref.commit.object.tree.resolve [function] [call site] 00012
3 typing.IO.tree.object.head.ref.commit.resolve [function] [call site] 00013
3 subprocess.Popen.object.head.ref.commit.resolve [function] [call site] 00014
3 typing.BinaryIO.tree.object.resolve [function] [call site] 00015
3 typing.cast.head.ref.commit.tree.object.resolve [function] [call site] 00016
3 typing.BinaryIO.object.tree.head.ref.commit.resolve [function] [call site] 00017
3 typing.IO.object.head.ref.commit.resolve [function] [call site] 00018
3 datetime.timedelta.tree.head.ref.commit.resolve [function] [call site] 00019
3 subprocess.Popen.object.resolve [function] [call site] 00020
3 typing.IO.object.tree.resolve [function] [call site] 00021
3 typing.IO.tree.head.ref.commit.resolve [function] [call site] 00022
3 typing.cast.commit.tree.object.resolve [function] [call site] 00023
3 typing.TypeVar.tree.head.ref.commit.resolve [function] [call site] 00024
3 typing.cast.head.ref.commit.tree.resolve [function] [call site] 00025
3 typing.cast.head.ref.commit.resolve [function] [call site] 00026
3 typing.BinaryIO.object.head.ref.commit.resolve [function] [call site] 00027
3 typing.cast.tree.head.ref.commit.resolve [function] [call site] 00028
3 datetime.timedelta.tree.resolve [function] [call site] 00029
3 typing.TypeVar.object.head.ref.commit.tree.resolve [function] [call site] 00030
3 typing.TypeVar.object.tree.head.ref.commit.resolve [function] [call site] 00031
3 datetime.timedelta.object.head.ref.commit.resolve [function] [call site] 00032
3 subprocess.Popen.head.ref.commit.resolve [function] [call site] 00033
3 typing.TypeVar.object.head.ref.commit.resolve [function] [call site] 00034
3 typing.cast.object.head.ref.commit.resolve [function] [call site] 00035
3 typing.TypeVar.head.ref.commit.object.resolve [function] [call site] 00036
3 typing.TypeVar.head.ref.commit.resolve [function] [call site] 00037
3 typing.IO.head.ref.commit.object.resolve [function] [call site] 00038
3 typing.TypeVar.head.ref.commit.tree.resolve [function] [call site] 00039
3 subprocess.Popen.head.ref.commit.tree.resolve [function] [call site] 00040
3 typing.BinaryIO.head.ref.commit.resolve [function] [call site] 00041
3 typing.cast.resolve [function] [call site] 00042
3 typing.TypeVar.object.resolve [function] [call site] 00043
3 typing.cast.commit.object.tree.resolve [function] [call site] 00044
3 datetime.timedelta.head.ref.commit.tree.resolve [function] [call site] 00045
3 typing.IO.object.tree.head.ref.commit.resolve [function] [call site] 00046
3 subprocess.Popen.tree.head.ref.commit.resolve [function] [call site] 00047
3 typing.BinaryIO.resolve [function] [call site] 00048
3 typing.IO.tree.object.resolve [function] [call site] 00049
3 datetime.timedelta.tree.head.ref.commit.object.resolve [function] [call site] 00050
3 typing.IO.resolve [function] [call site] 00051
3 datetime.timedelta.resolve [function] [call site] 00052
3 datetime.timedelta.object.tree.resolve [function] [call site] 00053
3 typing.BinaryIO.object.tree.resolve [function] [call site] 00054
3 typing.BinaryIO.tree.object.head.ref.commit.resolve [function] [call site] 00055
3 datetime.timedelta.object.tree.head.ref.commit.resolve [function] [call site] 00056
3 typing.TypeVar.tree.object.head.ref.commit.resolve [function] [call site] 00057
3 typing.IO.head.ref.commit.tree.object.resolve [function] [call site] 00058
3 typing.IO.head.ref.commit.tree.resolve [function] [call site] 00059
3 typing.IO.object.resolve [function] [call site] 00060
3 typing.TypeVar.resolve [function] [call site] 00061
3 typing.IO.head.ref.commit.resolve [function] [call site] 00062
3 typing.TypeVar.head.ref.commit.object.tree.resolve [function] [call site] 00063
3 typing.TypeVar.object.tree.resolve [function] [call site] 00064
3 subprocess.Popen.tree.resolve [function] [call site] 00065
3 typing.cast.object.head.ref.commit.tree.resolve [function] [call site] 00066
3 typing.BinaryIO.head.ref.commit.tree.resolve [function] [call site] 00067
3 typing.BinaryIO.head.ref.commit.tree.object.resolve [function] [call site] 00068
3 typing.cast.commit.resolve [function] [call site] 00069
3 subprocess.Popen.object.head.ref.commit.tree.resolve [function] [call site] 00070
3 typing.IO.object.head.ref.commit.tree.resolve [function] [call site] 00071
3 typing.TypeVar.tree.object.resolve [function] [call site] 00072
3 typing.BinaryIO.object.head.ref.commit.tree.resolve [function] [call site] 00073
3 subprocess.Popen.object.tree.head.ref.commit.resolve [function] [call site] 00074
3 subprocess.Popen.object.tree.resolve [function] [call site] 00075
3 datetime.timedelta.head.ref.commit.resolve [function] [call site] 00076
3 datetime.timedelta.tree.object.resolve [function] [call site] 00077
3 typing.TypeVar.tree.resolve [function] [call site] 00078
3 typing.cast.object.tree.head.ref.commit.resolve [function] [call site] 00079
3 typing.cast.tree.object.head.ref.commit.resolve [function] [call site] 00080
3 typing.BinaryIO.tree.head.ref.commit.resolve [function] [call site] 00081
3 datetime.timedelta.object.head.ref.commit.tree.resolve [function] [call site] 00082
3 os.path.expanduser [function] [call site] 00083
3 os.path.expandvars [function] [call site] 00084
3 os.path.abspath [function] [call site] 00085
3 os.path.normpath [function] [call site] 00086
2 os.path.exists [function] [call site] 00087
2 os.makedirs [function] [call site] 00088
2 git.cmd.Git.__init__ [function] [call site] 00089
3 <builtin>.super [function] [call site] 00090
3 git.util.expand_path [function] [call site] 00091
2 git.repo.base.Repo.__init__ [function] [call site] 00093
3 os.getenv [function] [call site] 00094
3 os.getcwd [function] [call site] 00095
3 os.fspath [function] [call site] 00096
3 git.cmd.Git.is_cygwin [function] [call site] 00097
4 git.util.is_cygwin_git [function] [call site] 00098
5 _logger.debug [function] [call site] 00099
5 <builtin>.str [function] [call site] 00100
5 git.util._is_cygwin_git [function] [call site] 00101
6 _is_cygwin_cache.get [function] [call site] 00102
6 os.path.dirname [function] [call site] 00103
6 git.util.py_where [function] [call site] 00104
7 git.util._get_exe_extensions [function] [call site] 00105
8 os.environ.get [function] [call site] 00106
8 PATHEXT.split [function] [call site] 00108
8 <builtin>.tuple [function] [call site] 00109
7 os.fspath [function] [call site] 00110
7 folder.strip [function] [call site] 00111
7 os.path.join [function] [call site] 00112
7 git.util.py_where.is_exec [function] [call site] 00113
8 os.path.isfile [function] [call site] 00114
8 os.access [function] [call site] 00115
8 fpath.upper [function] [call site] 00116
8 <builtin>.any [function] [call site] 00117
7 progs.append [function] [call site] 00118
6 os.path.dirname [function] [call site] 00119
6 os.path.join [function] [call site] 00120
6 pathlib.Path [function] [call site] 00121
6 pathlib.Path.is_file [function] [call site] 00122
6 os.access [function] [call site] 00123
6 _logger.debug [function] [call site] 00124
6 subprocess.Popen [function] [call site] 00125
6 process.communicate [function] [call site] 00126
6 _logger.debug [function] [call site] 00127
3 git.util.cygpath [function] [call site] 00128
4 os.fspath [function] [call site] 00129
4 regex.match [function] [call site] 00130
4 match.groups [function] [call site] 00131
4 git.util.cygpath [function] [call site] 00132
3 re.search [function] [call site] 00133
3 warnings.warn [function] [call site] 00134
3 git.util.expand_path [function] [call site] 00135
3 os.path.exists [function] [call site] 00136
3 git.repo.fun.is_git_dir [function] [call site] 00137
4 os.path.isdir [function] [call site] 00138
4 os.path.join [function] [call site] 00139
4 os.path.isdir [function] [call site] 00140
4 os.path.isdir [function] [call site] 00141
4 os.path.join [function] [call site] 00142
4 os.path.join [function] [call site] 00143
4 os.path.isfile [function] [call site] 00144
4 os.path.islink [function] [call site] 00145
4 os.readlink [function] [call site] 00146
4 os.path.join [function] [call site] 00147
4 os.path.isfile [function] [call site] 00148
4 os.path.join [function] [call site] 00149
4 os.path.isfile [function] [call site] 00150
4 os.path.join [function] [call site] 00151
4 os.path.isfile [function] [call site] 00152
3 os.path.dirname [function] [call site] 00153
3 os.environ.get [function] [call site] 00154
3 git.repo.base.Repo._config_reader [function] [call site] 00155
4 git.repo.base.Repo._get_config_path [function] [call site] 00156
5 os.environ.get [function] [call site] 00157
5 os.environ.get [function] [call site] 00158
5 os.path.join [function] [call site] 00159
5 os.path.join [function] [call site] 00160
5 os.path.expanduser [function] [call site] 00161
5 os.path.normpath [function] [call site] 00162
5 os.path.expanduser [function] [call site] 00163
5 os.path.normpath [function] [call site] 00164
5 os.path.join [function] [call site] 00165
5 os.path.normpath [function] [call site] 00166
5 git.types.assert_never [function] [call site] 00167
5 <builtin>.ValueError [function] [call site] 00168
4 git.repo.base.Repo._get_config_path [function] [call site] 00169
4 git.config.GitConfigParser.__init__ [function] [call site] 00170
5 configparser.RawConfigParser.__init__ [function] [call site] 00171
5 <builtin>.hasattr [function] [call site] 00172
5 configparser.RawConfigParser._dict [function] [call site] 00173
5 typing.cast [function] [call site] 00174
5 git.config.get_config_path [function] [call site] 00175
6 os.environ.get [function] [call site] 00176
6 os.environ.get [function] [call site] 00177
6 os.path.join [function] [call site] 00178
6 os.path.join [function] [call site] 00179
6 os.path.expanduser [function] [call site] 00180
6 os.path.normpath [function] [call site] 00181
6 os.path.expanduser [function] [call site] 00182
6 os.path.normpath [function] [call site] 00183
6 git.types.assert_never [function] [call site] 00184
6 <builtin>.ValueError [function] [call site] 00185
5 git.config.get_config_path [function] [call site] 00186
5 git.config.GitConfigParser._acquire_lock [function] [call site] 00187
6 <builtin>.isinstance [function] [call site] 00188
6 <builtin>.isinstance [function] [call site] 00189
6 git.util.LockFile.__init__ [function] [call site] 00190
6 git.util.LockFile._obtain_lock [function] [call site] 00191
7 git.util.LockFile._obtain_lock_or_raise [function] [call site] 00192
8 git.util.LockFile._has_lock [function] [call site] 00193
8 git.util.LockFile._lock_file_path [function] [call site] 00194
8 os.path.isfile [function] [call site] 00195
8 <builtin>.open [function] [call site] 00196
3 configparser.RawConfigParser.has_option [function] [call site] 00197
3 configparser.RawConfigParser.get [function] [call site] 00198
3 os.getenv [function] [call site] 00199
3 os.path.join [function] [call site] 00200
3 git.repo.fun.find_submodule_git_dir [function] [call site] 00201
4 git.repo.fun.is_git_dir [function] [call site] 00202
4 <builtin>.open [function] [call site] 00203
4 content.startswith [function] [call site] 00205
4 git.cmd.Git.is_cygwin [function] [call site] 00206
4 git.util.cygpath [function] [call site] 00207
4 os.path.isabs [function] [call site] 00208
4 os.path.dirname [function] [call site] 00209
4 os.path.join [function] [call site] 00210
4 os.path.normpath [function] [call site] 00211
4 git.repo.fun.find_submodule_git_dir [function] [call site] 00212
3 os.path.normpath [function] [call site] 00213
3 git.repo.fun.find_submodule_git_dir [function] [call site] 00214
3 git.repo.fun.find_worktree_git_dir [function] [call site] 00215
4 stat.S_ISREG [function] [call site] 00217
4 pathlib.Path [function] [call site] 00218
4 pathlib.Path.read_text [function] [call site] 00219
4 line.strip [function] [call site] 00220
3 git.util.expand_path [function] [call site] 00221
3 os.path.split [function] [call site] 00222
3 git.repo.base.Repo.config_reader [function] [call site] 00223
4 git.repo.base.Repo._config_reader [function] [call site] 00224
3 configparser.RawConfigParser.getboolean [function] [call site] 00225
3 pathlib.Path [function] [call site] 00226
3 pathlib.Path.read_text [function] [call site] 00227
3 os.path.join [function] [call site] 00228
3 git.cmd.Git.__init__ [function] [call site] 00229
3 os.path.join [function] [call site] 00230
3 <builtin>.issubclass [function] [call site] 00231
3 git.db.GitCmdObjectDB.__init__ [function] [call site] 00232
4 <builtin>.super [function] [call site] 00233
3 git.db.GitCmdObjectDB.__init__ [function] [call site] 00234
1 repo.index.commit [function] [call site] 00235
1 tempfile.TemporaryDirectory [function] [call site] 00236
1 fdp.ConsumeBool [function] [call site] 00237
1 git.repo.base.Repo.init [function] [call site] 00238
1 fdp.ConsumeIntInRange [function] [call site] 00239
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00240
1 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input [function] [call site] 00241
2 ch.isalnum [function] [call site] 00242
1 sub_repo.index.commit [function] [call site] 00243
1 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input [function] [call site] 00244
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00245
1 utils.get_max_filename_length [function] [call site] 00246
1 fdp.ConsumeIntInRange [function] [call site] 00247
1 os.path.relpath [function] [call site] 00248
1 os.path.join [function] [call site] 00249
1 submodule_name.startswith [function] [call site] 00250
1 repo.create_submodule [function] [call site] 00251
1 repo.index.commit [function] [call site] 00252
1 submodule.config_writer [function] [call site] 00253
1 fdp.remaining_bytes [function] [call site] 00254
1 <builtin>.max [function] [call site] 00255
1 fdp.ConsumeIntInRange [function] [call site] 00256
1 fdp.remaining_bytes [function] [call site] 00257
1 <builtin>.max [function] [call site] 00258
1 fdp.ConsumeIntInRange [function] [call site] 00259
1 writer.set_value [function] [call site] 00260
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00261
1 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input [function] [call site] 00262
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00263
1 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input [function] [call site] 00264
1 writer.release [function] [call site] 00265
1 submodule.update [function] [call site] 00266
1 fdp.ConsumeBool [function] [call site] 00267
1 fdp.ConsumeBool [function] [call site] 00268
1 fdp.ConsumeBool [function] [call site] 00269
1 submodule.module [function] [call site] 00270
1 ...gitpython.fuzzing.fuzz-targets.fuzz_submodule.sanitize_input [function] [call site] 00271
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00272
1 utils.get_max_filename_length [function] [call site] 00273
1 fdp.ConsumeIntInRange [function] [call site] 00274
1 os.path.join [function] [call site] 00275
1 <builtin>.open [function] [call site] 00276
1 fdp.ConsumeIntInRange [function] [call site] 00277
1 fdp.ConsumeBytes [function] [call site] 00278
1 new_file.write [function] [call site] 00279
1 submodule_repo.index.add [function] [call site] 00280
1 submodule_repo.index.commit [function] [call site] 00281
1 fdp.ConsumeBool [function] [call site] 00282
1 repo.submodule_update [function] [call site] 00283
1 submodule_repo.head.reset [function] [call site] 00284
1 fdp.ConsumeBool [function] [call site] 00285
1 fdp.ConsumeBool [function] [call site] 00286
1 fdp.PickValueInList [function] [call site] 00287
1 submodule.remove [function] [call site] 00288
1 fdp.ConsumeBool [function] [call site] 00289
1 fdp.ConsumeBool [function] [call site] 00290
1 repo.index.commit [function] [call site] 00291
1 utils.handle_exception [function] [call site] 00292