Re: git hang with corrupted .pack
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Oct 14, 2009, 16:12 UTC
- Message-ID
- <20091014161259.GK9261@spearce.org>
- In-Reply-To
- <alpine.LFD.2.00.0910141208170.20122@xanadu.home>
Nicolas Pitre <nico@fluxnic.net> wrote:
Show 5 quoted lines
> > 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.
...
> This is unfortunate that making a test case for this isn't exactly > trivial.
Hmmm. We could do something like manually create a pack file of one non-delta blob whose pack header length is 16, but use a zlib stream whose result body is 64. Prior to this fix, we'd be stuck in the infinite loop. :-)
Its a PITA to create though, you have to hand-craft the test vector and save it in the repository, we can't produce such a pack with any real code we ship.
-- Shawn.