Re: [PATCH 4/4] bundle: keep around names passed to add_pending_object()
- From
Thomas Rast <trast@inf.ethz.ch>
- Date
- Mar 1, 2012, 22:22 UTC
- Message-ID
- <87obsggdwh.fsf@thomas.inf.ethz.ch>
- In-Reply-To
- <7vehtckmee.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 12 quoted lines
> Thomas Rast <trast@student.ethz.ch> writes: > >> The 'name' field passed to add_pending_object() is used to later >> deduplicate in object_array_remove_duplicates(). >> >> git-bundle had a bug in this area since 18449ab (git-bundle: avoid >> packing objects which are in the prerequisites, 2007-03-08): it passed >> the name of each boundary object in a static buffer. In other words, >> all that object_array_remove_duplicates() saw was the name of the >> *last* added boundary object. > > Ouch.
Actually, I just noticed that object_array_remove_duplicates() is much newer than 18449ab, from b2a6d1c (bundle: allow the same ref to be given more than once, 2009-01-17). However it did pass in the same buffer all the time starting from 18449ab, which is a bug waiting to happen (and perhaps NULL would have been more appropriate).
Archaeology sure is fun.
--
Thomas Rast
trast@{inf,student}.ethz.ch