diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2018-09-13 21:02:16 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-09-17 23:49:41 +0300 |
commit | d3f8e211700c6c38f905a7d7ab1338df4784c79d (patch) | |
tree | d274f2e5eccd959ac165a6607f10f095381ff321 /midx.c | |
parent | 53ad0407444ac4da835dbe9cf85c272b4065f3b4 (diff) |
multi-pack-index: verify corrupt chunk lookup table
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'midx.c')
-rw-r--r-- | midx.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -100,6 +100,9 @@ struct multi_pack_index *load_multi_pack_index(const char *object_dir, int local uint64_t chunk_offset = get_be64(m->data + MIDX_HEADER_SIZE + 4 + MIDX_CHUNKLOOKUP_WIDTH * i); + if (chunk_offset >= m->data_len) + die(_("invalid chunk offset (too large)")); + switch (chunk_id) { case MIDX_CHUNKID_PACKNAMES: m->chunk_pack_names = m->data + chunk_offset; |