aboutsummaryrefslogtreecommitdiff
path: root/t/t5303-pack-corruption-resilience.sh
Commit message (Collapse)AuthorAge
* sha1_file: Fix infinite loop when pack is corruptedShawn O. Pearce2009-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some types of corruption to a pack may confuse the deflate stream which stores an object. In Andy's reported case a 36 byte region of the pack was overwritten, leading to what appeared to be a valid deflate stream that was trying to produce a result larger than our allocated output buffer could accept. Z_BUF_ERROR is returned from inflate() if either the input buffer needs more input bytes, or the output buffer has run out of space. Previously we only considered the former case, as it meant we needed to move the stream's input buffer to the next window in the pack. We now abort the loop if inflate() returns Z_BUF_ERROR without consuming the entire input buffer it was given, or has filled the entire output buffer but has not yet returned Z_STREAM_END. Either state is a clear indicator that this loop is not working as expected, and should not continue. This problem cannot occur with loose objects as we open the entire loose object as a single buffer and treat Z_BUF_ERROR as an error. Reported-by: Andy Isaacson <adi@hexapodia.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t5300, t5302, t5303: Do not use /dev/zeroJohannes Sixt2009-03-19
| | | | | | | | | | We do not have /dev/zero on Windows. This replaces it by data generated with printf, perl, or echo. Most of the cases do not depend on that the data is a stream of zero bytes, so we use something printable; nor is an unlimited stream of data needed, so we produce only as many bytes as the test cases need. Signed-off-by: Johannes Sixt <j6t@kdbg.org>
* t5303: fix printf format string for portabilityJunio C Hamano2008-11-09
| | | | | | | | | printf "\x01" is bad; write printf "\001" for portability. Testing with dash is a good way to find this kind of POSIX.1 violation breakages. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t5303: work around printf breakage in dashJunio C Hamano2008-11-09
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* extend test coverage for latest pack corruption resilience improvementsNicolas Pitre2008-11-02
| | | | | Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Fix use of "perl -i" on WindowsAlex Riesen2008-06-25
| | | | | | | | | | | | | The perldiag(1) has following to say about this: "Can't do inplace edit without backup" (F) You're on a system such as MS-DOS that gets confused if you try reading from a deleted (but still opened) file. You have to say -i.bak, or some such. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* test case for pack resilience against corruptionsNicolas Pitre2008-06-23
Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>