On Thu, Aug 26, 2010 at 05:34:29PM -0400, Jay Soffian wrote: > When objectname:short was introduced, it forgot to copy the result of > find_unique_abbrev. Because the result of find_unique_abbrev is a > pointer to static buffer, this resulted in the same value being > substituted in for each ref. Yuck. I can't believe neither Michael nor I noticed this on first review. > --- a/builtin/for-each-ref.c > +++ b/builtin/for-each-ref.c > @@ -228,7 +228,8 @@ static void grab_common_values(struct atom_value *val, int deref, struct object > v->s = s; > } > else if (!strcmp(name, "objectname:short")) { > - v->s = find_unique_abbrev(obj->sha1, DEFAULT_ABBREV); > + v->s = xstrdup(find_unique_abbrev(obj->sha1, > + DEFAULT_ABBREV)); Your fix looks correct. It obviously leaks, but then so does 99% of the rest of for-each-ref. -Peff -- 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