diff --git a/builtin/checkout.c b/builtin/checkout.c
index beeaee41130e21ecbd2622e7ed5e632c94167beb..c6919f16871a97b4f91fe525e4b8e89f43eecd58 100644 (file)
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
unsigned char rev[20];
int flag;
memset(&old, 0, sizeof(old));
- old.path = xstrdup(resolve_ref("HEAD", rev, 0, &flag));
+ old.path = resolve_ref("HEAD", rev, 0, &flag);
+ if (old.path)
+ old.path = xstrdup(old.path);
old.commit = lookup_commit_reference_gently(rev, 1);
if (!(flag & REF_ISSYMREF)) {
free((char *)old.path);