branch: fix segfault when resolving an invalid HEAD

Caused by return value of resolve_ref being passed directly
to xstrdup whereby the sanity checking was never reached.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Jonas Fonseca 2007-05-20 14:19:17 +02:00 committed by Junio C Hamano
parent f7b47b273e
commit 078f8380f6

View File

@ -623,9 +623,10 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
(rename && force_create)) (rename && force_create))
usage(builtin_branch_usage); usage(builtin_branch_usage);
head = xstrdup(resolve_ref("HEAD", head_sha1, 0, NULL)); head = resolve_ref("HEAD", head_sha1, 0, NULL);
if (!head) if (!head)
die("Failed to resolve HEAD as a valid ref."); die("Failed to resolve HEAD as a valid ref.");
head = xstrdup(head);
if (!strcmp(head, "HEAD")) { if (!strcmp(head, "HEAD")) {
detached = 1; detached = 1;
} }