diff options
author | Carlos MartÃn Nieto <carlosmn@github.com> | 2016-11-02 13:05:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-02 13:05:35 +0100 |
commit | d2451fedfa26708d99662e40b511645d4e7dcbf4 (patch) | |
tree | 6ccd0831d4afb4ec6445116f84a5a1f220500e41 | |
parent | 19001ca7ba175500978386729b49435dfcde3d67 (diff) | |
parent | 0cf15e39f3d435c6f8d8f52daed2b98c375266a8 (diff) | |
download | libgit2-d2451fedfa26708d99662e40b511645d4e7dcbf4.tar.gz |
Merge pull request #3984 from pks-t/pks/pack-find-offset-race
pack: fix race in pack_entry_find_offset
-rw-r--r-- | src/pack.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pack.c b/src/pack.c index 310f00fa3..2ee0c60e4 100644 --- a/src/pack.c +++ b/src/pack.c @@ -1268,8 +1268,8 @@ static int pack_entry_find_offset( const git_oid *short_oid, size_t len) { - const uint32_t *level1_ofs = p->index_map.data; - const unsigned char *index = p->index_map.data; + const uint32_t *level1_ofs; + const unsigned char *index; unsigned hi, lo, stride; int pos, found = 0; git_off_t offset; @@ -1283,11 +1283,11 @@ static int pack_entry_find_offset( if ((error = pack_index_open(p)) < 0) return error; assert(p->index_map.data); - - index = p->index_map.data; - level1_ofs = p->index_map.data; } + index = p->index_map.data; + level1_ofs = p->index_map.data; + if (p->index_version > 1) { level1_ofs += 2; index += 8; |