Fuzz introspector: fuzz_diff
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
42 251 git.cmd.handle_process_output call site: 00251 git.util.RemoteProgress.new_message_handler.handler
34 40 git.util.is_cygwin_git call site: 00040 git.util._is_cygwin_git
25 350 git.util.finalize_process call site: 00350 git.diff.Diff.__init__
24 376 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.BytesProcessAdapter.__init__ call site: 00376 git.diff.Diff._handle_diff_line
22 215 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.TestOneInput call site: 00215 git.diff.Diff._index_from_patch_format
19 5 git.util.expand_path call site: 00005 datetime.timedelta.resolve
14 119 git.config.GitConfigParser.__init__ call site: 00119 git.config.get_config_path
14 316 git.util.RemoteProgress._parse_progress_line call site: 00316 git.util.finalize_process
7 196 git.objects.base.IndexObject.__init__ call site: 00196 git.objects.base.IndexObject.__init__
6 91 git.repo.fun.is_git_dir call site: 00091 os.path.join
6 161 git.repo.base.Repo.__init__ call site: 00161 git.repo.fun.find_worktree_git_dir
5 206 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.TestOneInput call site: 00206 fdp.ConsumeBytes

Fuzzer calltree

0 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.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.resolve [function] [call site] 00006
3 typing.IO.resolve [function] [call site] 00007
3 typing.cast.tree.resolve [function] [call site] 00008
3 subprocess.Popen.resolve [function] [call site] 00009
3 typing.cast.head.commit.resolve [function] [call site] 00010
3 typing.BinaryIO.resolve [function] [call site] 00011
3 typing.cast.object.tree.resolve [function] [call site] 00012
3 typing.cast.head.commit.tree.object.resolve [function] [call site] 00013
3 git.objects.commit.Popen.resolve [function] [call site] 00014
3 datetime.timedelta.tree.resolve [function] [call site] 00015
3 typing.IO.tree.resolve [function] [call site] 00016
3 typing.cast.object.resolve [function] [call site] 00017
3 typing.cast.tree.object.resolve [function] [call site] 00018
3 typing.cast.resolve [function] [call site] 00019
3 subprocess.Popen.tree.resolve [function] [call site] 00020
3 typing.BinaryIO.tree.object.resolve [function] [call site] 00021
3 typing.BinaryIO.tree.resolve [function] [call site] 00022
3 typing.cast.head.commit.tree.resolve [function] [call site] 00023
3 git.objects.commit.Popen.tree.resolve [function] [call site] 00024
3 os.path.expanduser [function] [call site] 00025
3 os.path.expandvars [function] [call site] 00026
3 os.path.abspath [function] [call site] 00027
3 os.path.normpath [function] [call site] 00028
2 os.path.exists [function] [call site] 00029
2 os.makedirs [function] [call site] 00030
2 git.cmd.Git.__init__ [function] [call site] 00031
3 <builtin>.super [function] [call site] 00032
3 git.util.expand_path [function] [call site] 00033
2 git.repo.base.Repo.__init__ [function] [call site] 00035
3 os.getenv [function] [call site] 00036
3 os.getcwd [function] [call site] 00037
3 git.cmd.Git.is_cygwin [function] [call site] 00038
4 git.util.is_cygwin_git [function] [call site] 00039
5 _logger.debug [function] [call site] 00040
5 <builtin>.str [function] [call site] 00041
5 git.util._is_cygwin_git [function] [call site] 00042
6 _is_cygwin_cache.get [function] [call site] 00043
6 os.path.dirname [function] [call site] 00044
6 git.util.py_where [function] [call site] 00045
7 git.util._get_exe_extensions [function] [call site] 00046
8 os.environ.get [function] [call site] 00047
8 PATHEXT.split [function] [call site] 00049
8 <builtin>.tuple [function] [call site] 00050
7 <builtin>.str [function] [call site] 00051
7 folder.strip [function] [call site] 00052
7 os.path.join [function] [call site] 00053
7 git.util.py_where.is_exec [function] [call site] 00054
8 os.path.isfile [function] [call site] 00055
8 os.access [function] [call site] 00056
8 fpath.upper [function] [call site] 00057
8 <builtin>.any [function] [call site] 00058
7 progs.append [function] [call site] 00059
6 os.path.dirname [function] [call site] 00060
6 os.path.join [function] [call site] 00061
6 pathlib.Path [function] [call site] 00062
6 os.access [function] [call site] 00063
6 _logger.debug [function] [call site] 00064
6 subprocess.Popen [function] [call site] 00065
6 process.communicate [function] [call site] 00066
6 _logger.debug [function] [call site] 00067
3 <builtin>.str [function] [call site] 00068
3 git.util.cygpath [function] [call site] 00069
4 <builtin>.str [function] [call site] 00070
4 path.startswith [function] [call site] 00071
4 regex.match [function] [call site] 00072
4 match.groups [function] [call site] 00073
4 git.util.cygpath [function] [call site] 00074
3 os.getcwd [function] [call site] 00075
3 <builtin>.isinstance [function] [call site] 00076
3 <builtin>.str [function] [call site] 00077
3 re.search [function] [call site] 00078
3 warnings.warn [function] [call site] 00079
3 git.util.expand_path [function] [call site] 00080
3 os.path.exists [function] [call site] 00081
3 git.repo.fun.is_git_dir [function] [call site] 00082
4 os.path.isdir [function] [call site] 00083
4 os.path.join [function] [call site] 00084
4 os.path.isdir [function] [call site] 00085
4 os.path.isdir [function] [call site] 00086
4 os.path.join [function] [call site] 00087
4 os.path.join [function] [call site] 00088
4 os.path.isfile [function] [call site] 00089
4 os.path.islink [function] [call site] 00090
4 os.readlink [function] [call site] 00091
4 os.path.join [function] [call site] 00092
4 os.path.isfile [function] [call site] 00093
4 os.path.join [function] [call site] 00094
4 os.path.isfile [function] [call site] 00095
4 os.path.join [function] [call site] 00096
4 os.path.isfile [function] [call site] 00097
3 os.path.dirname [function] [call site] 00098
3 os.environ.get [function] [call site] 00099
3 git.repo.base.Repo._config_reader [function] [call site] 00100
4 typing.cast [function] [call site] 00101
4 git.repo.base.Repo._get_config_path [function] [call site] 00102
5 os.environ.get [function] [call site] 00103
5 os.environ.get [function] [call site] 00104
5 os.path.join [function] [call site] 00105
5 os.path.join [function] [call site] 00106
5 os.path.expanduser [function] [call site] 00107
5 os.path.normpath [function] [call site] 00108
5 os.path.expanduser [function] [call site] 00109
5 os.path.normpath [function] [call site] 00110
5 os.path.join [function] [call site] 00111
5 os.path.normpath [function] [call site] 00112
5 git.types.assert_never [function] [call site] 00113
5 <builtin>.ValueError [function] [call site] 00114
4 typing.cast [function] [call site] 00115
4 git.repo.base.Repo._get_config_path [function] [call site] 00116
4 git.config.GitConfigParser.__init__ [function] [call site] 00117
5 configparser.RawConfigParser.__init__ [function] [call site] 00118
5 <builtin>.hasattr [function] [call site] 00119
5 configparser.RawConfigParser._dict [function] [call site] 00120
5 typing.cast [function] [call site] 00121
5 git.config.get_config_path [function] [call site] 00122
6 os.environ.get [function] [call site] 00123
6 os.environ.get [function] [call site] 00124
6 os.path.join [function] [call site] 00125
6 os.path.join [function] [call site] 00126
6 os.path.expanduser [function] [call site] 00127
6 os.path.normpath [function] [call site] 00128
6 os.path.expanduser [function] [call site] 00129
6 os.path.normpath [function] [call site] 00130
6 git.types.assert_never [function] [call site] 00131
6 <builtin>.ValueError [function] [call site] 00132
5 git.config.get_config_path [function] [call site] 00133
5 git.config.GitConfigParser._acquire_lock [function] [call site] 00134
6 <builtin>.isinstance [function] [call site] 00135
6 <builtin>.isinstance [function] [call site] 00136
6 git.util.LockFile.__init__ [function] [call site] 00137
6 git.util.LockFile._obtain_lock [function] [call site] 00138
7 git.util.LockFile._obtain_lock_or_raise [function] [call site] 00139
8 git.util.LockFile._has_lock [function] [call site] 00140
8 git.util.LockFile._lock_file_path [function] [call site] 00141
8 os.path.isfile [function] [call site] 00142
8 <builtin>.open [function] [call site] 00143
3 configparser.RawConfigParser.has_option [function] [call site] 00144
3 configparser.RawConfigParser.get [function] [call site] 00145
3 os.getenv [function] [call site] 00146
3 os.path.join [function] [call site] 00147
3 git.repo.fun.find_submodule_git_dir [function] [call site] 00148
4 git.repo.fun.is_git_dir [function] [call site] 00149
4 <builtin>.open [function] [call site] 00150
4 content.startswith [function] [call site] 00152
4 git.cmd.Git.is_cygwin [function] [call site] 00153
4 git.util.cygpath [function] [call site] 00154
4 os.path.isabs [function] [call site] 00155
4 os.path.dirname [function] [call site] 00156
4 os.path.join [function] [call site] 00157
4 os.path.normpath [function] [call site] 00158
4 git.repo.fun.find_submodule_git_dir [function] [call site] 00159
3 os.path.normpath [function] [call site] 00160
3 git.repo.fun.find_submodule_git_dir [function] [call site] 00161
3 git.repo.fun.find_worktree_git_dir [function] [call site] 00162
4 stat.S_ISREG [function] [call site] 00164
4 pathlib.Path [function] [call site] 00165
4 pathlib.Path.read_text [function] [call site] 00166
4 line.strip [function] [call site] 00167
3 git.util.expand_path [function] [call site] 00168
3 os.path.split [function] [call site] 00169
3 git.repo.base.Repo.config_reader [function] [call site] 00170
4 git.repo.base.Repo._config_reader [function] [call site] 00171
3 configparser.RawConfigParser.getboolean [function] [call site] 00172
3 pathlib.Path [function] [call site] 00173
3 pathlib.Path.read_text [function] [call site] 00174
3 os.path.join [function] [call site] 00175
3 git.cmd.Git.__init__ [function] [call site] 00176
3 os.path.join [function] [call site] 00177
3 <builtin>.issubclass [function] [call site] 00178
3 git.db.GitCmdObjectDB.__init__ [function] [call site] 00179
4 <builtin>.super [function] [call site] 00180
3 git.db.GitCmdObjectDB.__init__ [function] [call site] 00181
1 git.diff.Diff.__init__ [function] [call site] 00182
2 <builtin>.isinstance [function] [call site] 00183
2 <builtin>.isinstance [function] [call site] 00184
2 git.objects.util.mode_str_to_int [function] [call site] 00185
3 <builtin>.reversed [function] [call site] 00186
3 <builtin>.enumerate [function] [call site] 00187
3 typing.cast [function] [call site] 00188
3 <builtin>.int [function] [call site] 00189
2 git.objects.util.mode_str_to_int [function] [call site] 00190
2 a_rawpath.decode [function] [call site] 00191
2 submodule.module_exists [function] [call site] 00192
2 submodule.module [function] [call site] 00193
2 gitdb.util.hex_to_bin [function] [call site] 00194
2 git.objects.base.IndexObject.__init__ [function] [call site] 00195
3 <builtin>.super [function] [call site] 00196
2 gitdb.util.hex_to_bin [function] [call site] 00197
2 git.objects.base.IndexObject.__init__ [function] [call site] 00198
2 <builtin>.isinstance [function] [call site] 00199
2 <builtin>.isinstance [function] [call site] 00200
1 fdp.remaining_bytes [function] [call site] 00201
1 fdp.ConsumeIntInRange [function] [call site] 00202
1 fdp.ConsumeBytes [function] [call site] 00203
1 fdp.remaining_bytes [function] [call site] 00204
1 fdp.ConsumeIntInRange [function] [call site] 00205
1 fdp.ConsumeBytes [function] [call site] 00206
1 fdp.ConsumeBytes [function] [call site] 00207
1 fdp.ConsumeBytes [function] [call site] 00208
1 fdp.remaining_bytes [function] [call site] 00209
1 fdp.ConsumeIntInRange [function] [call site] 00210
1 fdp.ConsumeBytes [function] [call site] 00211
1 fdp.remaining_bytes [function] [call site] 00212
1 fdp.ConsumeIntInRange [function] [call site] 00213
1 fdp.ConsumeBytes [function] [call site] 00214
1 fdp.ConsumeBool [function] [call site] 00215
1 fdp.ConsumeBool [function] [call site] 00216
1 fdp.ConsumeBool [function] [call site] 00217
1 fdp.remaining_bytes [function] [call site] 00218
1 fdp.ConsumeIntInRange [function] [call site] 00219
1 fdp.ConsumeBytes [function] [call site] 00220
1 fdp.remaining_bytes [function] [call site] 00221
1 fdp.ConsumeIntInRange [function] [call site] 00222
1 fdp.ConsumeBytes [function] [call site] 00223
1 fdp.remaining_bytes [function] [call site] 00224
1 fdp.ConsumeIntInRange [function] [call site] 00225
1 fdp.ConsumeBytes [function] [call site] 00226
1 fdp.PickValueInList [function] [call site] 00227
1 fdp.remaining_bytes [function] [call site] 00228
1 fdp.ConsumeIntInRange [function] [call site] 00229
1 <builtin>.str [function] [call site] 00230
1 git.diff.Diff.__str__ [function] [call site] 00231
2 <builtin>.zip [function] [call site] 00232
2 <builtin>.len [function] [call site] 00233
2 <builtin>.max [function] [call site] 00234
2 <builtin>.isinstance [function] [call site] 00235
1 git.diff.Diff._index_from_patch_format [function] [call site] 00236
2 git.cmd.handle_process_output [function] [call site] 00237
3 <builtin>.hasattr [function] [call site] 00238
3 typing.cast [function] [call site] 00239
3 <builtin>.getattr [function] [call site] 00240
3 typing.cast [function] [call site] 00241
3 <builtin>.getattr [function] [call site] 00242
3 <builtin>.isinstance [function] [call site] 00243
3 cmdline.split [function] [call site] 00244
3 pumps.append [function] [call site] 00245
3 pumps.append [function] [call site] 00246
3 threading.Thread [function] [call site] 00247
3 threads.append [function] [call site] 00249
3 t.is_alive [function] [call site] 00251
3 <builtin>.isinstance [function] [call site] 00252
3 typing.cast.head.commit.tree.object._terminate [function] [call site] 00253
3 typing.BinaryIO.tree.object._terminate [function] [call site] 00254
3 typing.IO.tree._terminate [function] [call site] 00255
3 datetime.timedelta.tree._terminate [function] [call site] 00256
3 typing.cast.head.commit._terminate [function] [call site] 00257
3 typing.cast.head.commit.tree._terminate [function] [call site] 00258
3 typing.cast.tree._terminate [function] [call site] 00259
3 git.objects.commit.Popen._terminate [function] [call site] 00260
3 typing.cast.tree.object._terminate [function] [call site] 00261
3 subprocess.Popen.tree._terminate [function] [call site] 00262
3 datetime.timedelta._terminate [function] [call site] 00263
3 git.objects.commit.Popen.tree._terminate [function] [call site] 00264
3 typing.BinaryIO._terminate [function] [call site] 00265
3 typing.cast._terminate [function] [call site] 00266
3 subprocess.Popen._terminate [function] [call site] 00267
3 typing.cast.object._terminate [function] [call site] 00268
3 typing.IO._terminate [function] [call site] 00269
3 typing.BinaryIO.tree._terminate [function] [call site] 00270
3 typing.cast.object.tree._terminate [function] [call site] 00271
3 <builtin>.isinstance [function] [call site] 00272
3 typing.cast [function] [call site] 00273
3 typing.cast.head.commit.encode [function] [call site] 00274
3 typing.cast.object.tree.encode [function] [call site] 00275
3 typing.BinaryIO.tree.object.encode [function] [call site] 00276
3 datetime.timedelta.tree.encode [function] [call site] 00277
3 typing.cast.tree.object.encode [function] [call site] 00278
3 git.objects.commit.Popen.encode [function] [call site] 00279
3 typing.cast.head.commit.tree.object.encode [function] [call site] 00280
3 typing.IO.encode [function] [call site] 00281
3 typing.BinaryIO.tree.encode [function] [call site] 00282
3 typing.IO.tree.encode [function] [call site] 00283
3 subprocess.Popen.tree.encode [function] [call site] 00284
3 git.objects.commit.Popen.tree.encode [function] [call site] 00285
3 typing.cast.head.commit.tree.encode [function] [call site] 00286
3 subprocess.Popen.encode [function] [call site] 00287
3 datetime.timedelta.encode [function] [call site] 00288
3 typing.cast.tree.encode [function] [call site] 00289
3 typing.BinaryIO.encode [function] [call site] 00290
3 typing.cast.encode [function] [call site] 00291
3 typing.cast.object.encode [function] [call site] 00292
3 git.util.RemoteProgress.new_message_handler.handler [function] [call site] 00293
4 typing.cast.tree.object.rstrip [function] [call site] 00294
4 datetime.timedelta.tree.rstrip [function] [call site] 00295
4 typing.BinaryIO.tree.object.rstrip [function] [call site] 00296
4 git.objects.commit.Popen.tree.rstrip [function] [call site] 00297
4 typing.cast.head.commit.rstrip [function] [call site] 00298
4 typing.cast.rstrip [function] [call site] 00299
4 typing.IO.tree.rstrip [function] [call site] 00300
4 typing.cast.tree.rstrip [function] [call site] 00301
4 datetime.timedelta.rstrip [function] [call site] 00302
4 typing.cast.object.tree.rstrip [function] [call site] 00303
4 typing.BinaryIO.tree.rstrip [function] [call site] 00304
4 typing.cast.head.commit.tree.rstrip [function] [call site] 00305
4 typing.cast.head.commit.tree.object.rstrip [function] [call site] 00306
4 typing.BinaryIO.rstrip [function] [call site] 00307
4 typing.cast.object.rstrip [function] [call site] 00308
4 typing.IO.rstrip [function] [call site] 00309
4 subprocess.Popen.tree.rstrip [function] [call site] 00310
4 subprocess.Popen.rstrip [function] [call site] 00311
4 git.objects.commit.Popen.rstrip [function] [call site] 00312
4 git.util.RemoteProgress._parse_progress_line [function] [call site] 00313
5 <builtin>.isinstance [function] [call site] 00314
5 line.decode [function] [call site] 00315
5 git.util.RemoteProgress.line_dropped [function] [call site] 00316
5 match.groups [function] [call site] 00317
5 git.util.RemoteProgress.line_dropped [function] [call site] 00318
5 message.strip [function] [call site] 00319
5 message.endswith [function] [call site] 00320
5 <builtin>.len [function] [call site] 00321
5 message.strip [function] [call site] 00322
5 git.util.RemoteProgress.update [function] [call site] 00323
5 git.util.CallableRemoteProgress.update [function] [call site] 00324
6 git.util.CallableRemoteProgress.__init__ [function] [call site] 00325
7 <builtin>.super [function] [call site] 00326
6 git.util.RemoteProgress.__init__ [function] [call site] 00327
5 <builtin>.float [function] [call site] 00328
5 <builtin>.float [function] [call site] 00329
3 git.util.finalize_process [function] [call site] 00330
4 typing.BinaryIO.wait [function] [call site] 00331
4 typing.cast.head.commit.tree.wait [function] [call site] 00332
4 typing.cast.head.commit.wait [function] [call site] 00333
4 typing.cast.wait [function] [call site] 00334
4 typing.cast.object.tree.wait [function] [call site] 00335
4 git.objects.commit.Popen.tree.wait [function] [call site] 00336
4 subprocess.Popen.wait [function] [call site] 00337
4 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.BytesProcessAdapter.wait [function] [call site] 00338
4 subprocess.Popen.tree.wait [function] [call site] 00339
4 typing.IO.tree.wait [function] [call site] 00340
4 typing.cast.tree.object.wait [function] [call site] 00341
4 typing.BinaryIO.tree.object.wait [function] [call site] 00342
4 typing.cast.object.wait [function] [call site] 00343
4 datetime.timedelta.wait [function] [call site] 00344
4 typing.cast.tree.wait [function] [call site] 00345
4 typing.IO.wait [function] [call site] 00346
4 git.objects.commit.Popen.wait [function] [call site] 00347
4 datetime.timedelta.tree.wait [function] [call site] 00348
4 typing.cast.head.commit.tree.object.wait [function] [call site] 00349
4 typing.BinaryIO.tree.wait [function] [call site] 00350
2 cls.re_header.finditer [function] [call site] 00351
2 _header.groups [function] [call site] 00352
2 <builtin>.bool [function] [call site] 00353
2 <builtin>.bool [function] [call site] 00354
2 <builtin>.bool [function] [call site] 00355
2 git.diff.Diff._pick_best_path [function] [call site] 00356
3 git.diff.decode_path [function] [call site] 00357
4 _octal_byte_re.sub [function] [call site] 00358
3 git.diff.decode_path [function] [call site] 00359
3 git.diff.decode_path [function] [call site] 00360
2 git.diff.Diff._pick_best_path [function] [call site] 00361
2 previous_header.end [function] [call site] 00362
2 _header.start [function] [call site] 00363
2 index.append [function] [call site] 00364
2 git.diff.Diff.__init__ [function] [call site] 00365
2 a_blob_id.decode [function] [call site] 00366
2 b_blob_id.decode [function] [call site] 00367
2 a_mode.decode [function] [call site] 00368
2 b_mode.decode [function] [call site] 00369
2 header.end [function] [call site] 00370
1 fdp.remaining_bytes [function] [call site] 00371
1 fdp.ConsumeIntInRange [function] [call site] 00372
1 fdp.ConsumeBytes [function] [call site] 00373
1 ...gitpython.fuzzing.fuzz-targets.fuzz_diff.BytesProcessAdapter.__init__ [function] [call site] 00374
2 io.BytesIO [function] [call site] 00375
2 io.BytesIO [function] [call site] 00376
1 git.diff.Diff._handle_diff_line [function] [call site] 00377
2 lines_bytes.decode [function] [call site] 00378
2 lines.partition [function] [call site] 00379
2 lines.split [function] [call site] 00380
2 line.partition [function] [call site] 00381
2 path.rstrip [function] [call site] 00382
2 meta.split [function] [call site] 00383
2 typing.cast [function] [call site] 00384
2 score_str.isdigit [function] [call site] 00385
2 <builtin>.int [function] [call site] 00386
2 path.strip [function] [call site] 00387
2 path.encode [function] [call site] 00388
2 path.encode [function] [call site] 00389
2 path.split [function] [call site] 00390
2 a_path_str.encode [function] [call site] 00391
2 b_path_str.encode [function] [call site] 00392
2 path.split [function] [call site] 00393
2 a_path_str.encode [function] [call site] 00394
2 b_path_str.encode [function] [call site] 00395
2 git.diff.Diff.__init__ [function] [call site] 00396
2 index.append [function] [call site] 00397
1 fdp.remaining_bytes [function] [call site] 00398
1 fdp.ConsumeIntInRange [function] [call site] 00399
1 fdp.ConsumeBytes [function] [call site] 00400