From: Junio C Hamano Date: Mon, 17 Oct 2011 17:22:47 GMT Subject: Re: regression in git-gui since 2c5c66b... Merge branch 'jp/get-ref-dir-unsorted Message-ID: <7v4nz7o7mg.fsf@alter.siamese.dyndns.org> In-Reply-To: <4E9C2F3C.7080405@alum.mit.edu> Michael Haggerty writes: > static int resolve_gitlink_packed_ref(char *name, int pathlen, const > char *refname, unsigned char *result) > { > int retval = -1; > struct ref_entry *ref; > struct ref_array *array = get_packed_refs(name); > > ref = search_ref_array(array, refname); > if (ref != NULL) { > memcpy(result, ref->sha1, 20); > retval = 0; > } > return retval; > } > > The problem is that the parameter "name" is not NUL-terminated. The old > code turned it into a (NUL-terminated) filename via > > strcpy(name + pathlen, "packed-refs"); > > but the new code passes it (unterminated) to get_packed_refs() Thanks for digging this through before I got to it. Very much appreciated, and sorry or the mismerge (incidentally this was why I wanted to merge early these two topics that tried to improve different things that happened to touch the same part of the code, as I knew such a merge was risky and needed plenty time before it hits released versions).