Re: [PATCH] receive-pack, fetch-pack: reject bogus pack that records objects twice
- From
Jeff King <peff@peff.net>
- Date
- Nov 18, 2011, 21:08 UTC
- Message-ID
- <20111118210825.GA14710@sigill.intra.peff.net>
- In-Reply-To
- <7v62ihkzhb.fsf@alter.siamese.dyndns.org>
On Fri, Nov 18, 2011 at 11:22:08AM -0800, Junio C Hamano wrote:
Show 16 quoted lines
> >> > If we are fixing a thin pack (which should be the case most of the > >> > time), we are rewriting the packfile anyway. Shouldn't we just omit > >> > the duplicate? > >> ... > > ... But I guess there is some complexity > > with deltified entries? As in, if the first entry is deltified but the > > second is not, you would want to keep the second one? > > I think you answered your own question here; it is not "some complexity" > but is exactly the "you need to memmove() in the output file" situation in > the message you are responding to. > > Upon seeing a delta, you would not know if the same object as this delta > represents appears later in the pack stream, which means until you read to > the end you wouldn't know. You obviously would not want to hold onto all > deltas in-core to "just omit the duplicate".
OK, that makes sense to me. It's nice to hear it confirmed from somebody who obviously thought more about it.
-Peff