Thread (4 messages) 4 messages, 3 authors, 2016-06-15

Re: mktree: multiple same-named objects

flat view

From: Jeff King <hidden>
Date: 2016-06-15 23:02:22

On Wed, Aug 27, 2014 at 12:41:57AM -0400, David Turner wrote:
git mktree seems to allow the creation of a tree object with multiple
objects of the same name but different SHAs.
Yeah, I don't think we do many quality checks there. Ditto for "git
hash-object".

The latter goes through index_mem, which at least checks that the
resulting tree is parseable. It does not look like mktree even checks
that.
Summary: git mktree ought to forbid this, and possibly there ought to be
other checks (for instance, when unpacking) to prevent this.
The checks in git-fsck will notice your problem (and many others). I
think we should be running them anytime we create an object based on
arbitrary data (including mktree and hash-object). Code paths like "git
write-tree" and "git commit-tree" are probably OK, as their code should
follow the standard (it would not hurt to double-check their output,
though there may be a performance implication).

Dscho (cc'd) has been looking into this approach; I don't know how far
he has gotten.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help