X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=merge-tree.c;h=3b8d9e6887ae051bf61cc0833f97d83bb47a0bae;hb=ee4fd1adfda5b6ebde93b289227986bf884babab;hp=b2867ba7226ea6ff69876f8f20da87d200fe5fca;hpb=1589e0517fd22c198799504d6888d5a475024152;p=git.git diff --git a/merge-tree.c b/merge-tree.c index b2867ba72..3b8d9e688 100644 --- a/merge-tree.c +++ b/merge-tree.c @@ -188,7 +188,7 @@ static void resolve(const char *base, struct name_entry *branch1, struct name_en static int unresolved_directory(const char *base, struct name_entry n[3]) { - int baselen; + int baselen, pathlen; char *newbase; struct name_entry *p; struct tree_desc t[3]; @@ -205,10 +205,11 @@ static int unresolved_directory(const char *base, struct name_entry n[3]) if (!S_ISDIR(p->mode)) return 0; baselen = strlen(base); - newbase = xmalloc(baselen + p->pathlen + 2); + pathlen = tree_entry_len(p->path, p->sha1); + newbase = xmalloc(baselen + pathlen + 2); memcpy(newbase, base, baselen); - memcpy(newbase + baselen, p->path, p->pathlen); - memcpy(newbase + baselen + p->pathlen, "/", 2); + memcpy(newbase + baselen, p->path, pathlen); + memcpy(newbase + baselen + pathlen, "/", 2); buf0 = fill_tree_descriptor(t+0, n[0].sha1); buf1 = fill_tree_descriptor(t+1, n[1].sha1);