On Thu, May 30, 2013 at 6:34 AM, René Scharfe <rene.scharfe@xxxxxxxxxxxxxx> wrote: > The merge functions duplicate entries as needed and they don't free > them. Release them in unpack_nondirectories, the same function > where they were allocated, after we're done. Ah, you beat me to this change, but.. > @@ -600,9 +600,14 @@ static int unpack_nondirectories(int n, unsigned long mask, > src[i + o->merge] = create_ce_entry(info, names + i, stage); > } > > - if (o->merge) > - return call_unpack_fn((const struct cache_entry * const *)src, > - o); > + if (o->merge) { > + int rc = call_unpack_fn((const struct cache_entry * const *)src, > + o); > + for (i = 1; i <= n; i++) > + if (src[i] && src[i] != o->df_conflict_entry) > + free(src[i]); Doesn't it make more sense to follow the code above and do src[i + o->merge]? -- Felipe Contreras -- 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