summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-08-02 21:06:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-08-02 21:06:43 (GMT)
commit9bcdaab13ea542bbdb4ea4d5f189ca00b9270887 (patch)
tree31ac4bde579190e5cada2213d854a5206c128fd7
parent8230107f336b29d25111c517639b8cd5717c8416 (diff)
parentdc1daacdcc2268d9bd93e54672b73e7ea8557ba6 (diff)
downloadgit-9bcdaab13ea542bbdb4ea4d5f189ca00b9270887.zip
git-9bcdaab13ea542bbdb4ea4d5f189ca00b9270887.tar.gz
git-9bcdaab13ea542bbdb4ea4d5f189ca00b9270887.tar.bz2
Merge branch 'jk/check-pack-valid-before-opening-bitmap'
A race between repacking and using pack bitmaps has been corrected. * jk/check-pack-valid-before-opening-bitmap: pack-bitmap: check pack validity when opening bitmap
-rw-r--r--pack-bitmap.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pack-bitmap.c b/pack-bitmap.c
index c8cb9ef..d999616 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -298,6 +298,11 @@ static int open_pack_bitmap_1(struct bitmap_index *bitmap_git, struct packed_git
return -1;
}
+ if (!is_pack_valid(packfile)) {
+ close(fd);
+ return -1;
+ }
+
bitmap_git->pack = packfile;
bitmap_git->map_size = xsize_t(st.st_size);
bitmap_git->map = xmmap(NULL, bitmap_git->map_size, PROT_READ, MAP_PRIVATE, fd, 0);