index: also sanity check entry size with compressed entries

We have a check in place whether the index has enough data left for the
required footer after reading an index entry, but this was only used for
uncompressed entries. Move the check down a bit so that it is executed
for both compressed and uncompressed index entries.
This commit is contained in:
Patrick Steinhardt 2017-05-19 13:39:05 +02:00
parent 350d2c47bc
commit 83e0392cea

View File

@ -2358,10 +2358,6 @@ static size_t read_entry(
}
entry_size = index_entry_size(path_length, 0, entry.flags);
if (INDEX_FOOTER_SIZE + entry_size > buffer_size)
return 0;
entry.path = (char *)path_ptr;
} else {
size_t varint_len;
@ -2386,6 +2382,9 @@ static size_t read_entry(
entry.path = tmp_path;
}
if (INDEX_FOOTER_SIZE + entry_size > buffer_size)
return 0;
if (index_entry_dup(out, index, &entry) < 0) {
git__free(tmp_path);
return 0;