diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2023-02-14 11:29:52 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-14 11:29:52 +0000 |
commit | b3cba8f8c06791d867412473ca8cfed8d89d85e0 (patch) | |
tree | 65470a3ff652142589f0de3846ee18b23fc6f151 /src | |
parent | d9d45fb3a174393bac81655171f774048b5424d2 (diff) | |
parent | b755b7d294780bf7dc1c9b5c5fff892ac5f0ec38 (diff) | |
download | libgit2-b3cba8f8c06791d867412473ca8cfed8d89d85e0.tar.gz |
Merge pull request #6475 from jorio/fix_diff_empty_untracked_file
diff_file: Fix crash when freeing a patch representing an empty untracked file
Diffstat (limited to 'src')
-rw-r--r-- | src/libgit2/diff_file.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libgit2/diff_file.c b/src/libgit2/diff_file.c index 5f4336658..c2d08675a 100644 --- a/src/libgit2/diff_file.c +++ b/src/libgit2/diff_file.c @@ -348,6 +348,13 @@ static int diff_file_content_load_workdir_file( goto cleanup; } + /* if file is empty, don't attempt to mmap or readbuffer */ + if (fc->file->size == 0) { + fc->map.len = 0; + fc->map.data = git_str__initstr; + goto cleanup; + } + if ((diff_opts->flags & GIT_DIFF_SHOW_BINARY) == 0 && diff_file_content_binary_by_size(fc)) goto cleanup; |