Christian Couder <chriscool@xxxxxxxxxxxxx> writes: > The function parse_commit() is not safe regarding replaced commits > because it uses the buffer of the replacement commit but the object > part of the commit struct stay the same. Especially the sha1 is not > changed so it doesn't match the content of the commit. This all sounds backwards to me, if I am reading the discussion correctly. If a replace record says commit 0123 is replaced by commit 4567 (iow, 0123 was a mistake, and pretend that its content is what is recorded in 4567), and when we are honoring the replace records (iow, we are not fsck), shouldn't read_sha1("0123") give us a piece of memory that stores what is recorded in 4567, parse_object("0123") return a struct commit whose buffer points at a block of memory that has what is recorded in 4567 _while_ its object.sha1[] say "0123"? What problem are you trying to solve? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html