about summary refs log tree commit diff
path: root/third_party/git/builtin/merge-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/builtin/merge-tree.c')
-rw-r--r--third_party/git/builtin/merge-tree.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/third_party/git/builtin/merge-tree.c b/third_party/git/builtin/merge-tree.c
index 97b54caeb9..e72714a5a8 100644
--- a/third_party/git/builtin/merge-tree.c
+++ b/third_party/git/builtin/merge-tree.c
@@ -180,8 +180,9 @@ static struct merge_list *create_entry(unsigned stage, unsigned mode, const stru
 
 static char *traverse_path(const struct traverse_info *info, const struct name_entry *n)
 {
-	char *path = xmallocz(traverse_path_len(info, n) + the_hash_algo->rawsz);
-	return make_traverse_path(path, info, n);
+	struct strbuf buf = STRBUF_INIT;
+	strbuf_make_traverse_path(&buf, info, n->path, n->pathlen);
+	return strbuf_detach(&buf, NULL);
 }
 
 static void resolve(const struct traverse_info *info, struct name_entry *ours, struct name_entry *result)