From 83e0392ceadb7e1d9db09a7f013e28759a666e89 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Fri, 19 May 2017 13:39:05 +0200 Subject: [PATCH] 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. --- src/index.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/index.c b/src/index.c index ed9f47839..bff5d7f73 100644 --- a/src/index.c +++ b/src/index.c @@ -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;