Subject: [PATCH] Fix bad usage of mkpath in builtin-branch.sh

From: Lars Hjemli <[email-masked]>
Date: Tue, 24 Oct 2006 03:59:36 +0200

When checking if a branch start point referred to a commit-object,
the result of mkpath() was used as argument to get_sha1(), which
didn't work out as planned.

Now it's xstrdup'd first.

Signed-off-by: Lars Hjemli <[email-masked]>
---
 builtin-branch.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/builtin-branch.c b/builtin-branch.c
index ffc2db0..f86bf68 100755
--- a/builtin-branch.c
+++ b/builtin-branch.c
@@ -125,6 +125,7 @@ static void create_branch(const char *na
 	struct ref_lock *lock;
 	unsigned char sha1[20];
 	char ref[PATH_MAX], msg[PATH_MAX + 20];
+	const char *commitref;
 
 	snprintf(ref, sizeof ref, "refs/heads/%s", name);
 	if (check_ref_format(ref))
@@ -137,8 +138,10 @@ static void create_branch(const char *na
 			die("Cannot force update the current branch.");
 	}
 
-	if (get_sha1(mkpath("%s^0", start), sha1))
+	commitref = xstrdup(mkpath("%s^0", start));
+	if (get_sha1(commitref, sha1))
 		die("Not a valid branch point: '%s'.", start);
+	free(commitref);
 
 	lock = lock_any_ref_for_update(ref, NULL);
 	if (!lock)
-- 
1.4.3.1.ga4cc-dirty