t5313: test bounds-checks of corrupted/malicious pack/idx files
commita1283866bab1cd12da57b3e427664180f5dee333
authorJeff King <peff@peff.net>
Thu, 25 Feb 2016 14:21:12 +0000 (25 09:21 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 25 Feb 2016 19:32:41 +0000 (25 11:32 -0800)
tree9089dd1ca5e644b0db7dcb959e856846e7ea9a0d
parenta2558fb8e1e387b630312311e1d22c95663da5d0
t5313: test bounds-checks of corrupted/malicious pack/idx files

Our on-disk .pack and .idx files may reference other data by
offset. We should make sure that we are not fooled by
corrupt data into accessing memory outside of our mmap'd
boundaries.

This patch adds a series of tests for offsets found in .pack
and .idx files. For the most part we get this right, but
there are two tests of .idx files marked as failures: we do
not bounds-check offsets in the v2 index's extended offset
table, nor do we handle .idx offsets that overflow a signed
off_t.

With these tests, we should have good coverage of all
offsets found in these files. Note that this doesn't cover
.bitmap files, which may have similar bugs.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5313-pack-bounds-checks.sh [new file with mode: 0755]