git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] receive-pack, fetch-pack: reject bogus pack that records objects twice

From
Shawn Pearce <spearce@spearce.org>
Date
Nov 18, 2011, 23:50 UTC
Message-ID
<CAJo=hJukf1C56-rSurJm5voKw+8T9up=9_Umhn032n4rNnLviw@mail.gmail.com>
In-Reply-To
<20111118103355.GA4854@sigill.intra.peff.net>
On Fri, Nov 18, 2011 at 02:33, Jeff King <peff@peff.net> wrote:
Show 13 quoted lines
> On Wed, Nov 16, 2011 at 10:04:13PM -0800, Junio C Hamano wrote:
>
>> When receive-pack & fetch-pack are run and store the pack obtained over
>> the wire to a local repository, they internally run the index-pack command
>> with the --strict option. Make sure that we reject incoming packfile that
>> records objects twice to avoid spreading such a damage.
>
> 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?
>
> I guess I'm a little confused about what is generating these duplicates.
> A buggy git? A malicious server? Bad luck?

A buggy Git. We found a case where JGit could generate duplicate objects in the pack stream during a clone. The resulting client worked... until it tried to do `git gc` or really any sort of `git pack-objects`.

In my opinion, a pack should never contain duplicate objects. Its a buggy remote that sends them. What I like about this patch is it stops and tells the user the remote is broken, which it is.

Previous: Jeff King
Message 8 of 8 in “receive-pack, fetch-pack: reject bogus pack that records objects twice”
  1. receive-pack, fetch-pack: reject bogus pack that records objects twiceJunio C Hamano, Nov 17, 2011
  2. Shawn PearceNov 17, 2011
  3. Jeff KingNov 18, 2011
  4. Junio C HamanoNov 18, 2011
  5. Jeff KingNov 18, 2011
  6. Junio C HamanoNov 18, 2011
  7. Jeff KingNov 18, 2011
  8. Shawn PearceNov 18, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.