Fix read_zlib_chunks to avoid appending junk data.
authorDave Borowitz <dborowitz@google.com>
Thu, 11 Mar 2010 22:10:17 +0000 (14:10 -0800)
committerDave Borowitz <dborowitz@google.com>
Fri, 16 Apr 2010 19:04:12 +0000 (12:04 -0700)
commitd38fa7e8b5141ddaaacd2eba16ea268f45dacf30
treea26661dcf1f3f4595d5c8eee778193c3302c63a6
parent09073f072e4fba56a292aca78455e4003d28eeb2
Fix read_zlib_chunks to avoid appending junk data.

Adding junk data to the end of data fed to the zlib.decompressobj
creates the potential for zlib errors if a read doesn't fill the entire
buffer. This implementation is cleaner, and only requires the assumption
that there is some data in the read source after the zlib stream. Since
compressed streams in packfiles are always followed by either a new
packed object or the SHA-1 trailer, this assumption should be safe.

Added more robust tests for zlib reading with various buffer sizes.

Change-Id: I813d30997edf3e0c924eceac05675e0eb121b96c
dulwich/pack.py
dulwich/tests/test_pack.py