Commit 83e0392c by Patrick Steinhardt

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.
parent 350d2c47
...@@ -2358,10 +2358,6 @@ static size_t read_entry( ...@@ -2358,10 +2358,6 @@ static size_t read_entry(
} }
entry_size = index_entry_size(path_length, 0, entry.flags); 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; entry.path = (char *)path_ptr;
} else { } else {
size_t varint_len; size_t varint_len;
...@@ -2386,6 +2382,9 @@ static size_t read_entry( ...@@ -2386,6 +2382,9 @@ static size_t read_entry(
entry.path = tmp_path; entry.path = tmp_path;
} }
if (INDEX_FOOTER_SIZE + entry_size > buffer_size)
return 0;
if (index_entry_dup(out, index, &entry) < 0) { if (index_entry_dup(out, index, &entry) < 0) {
git__free(tmp_path); git__free(tmp_path);
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment