From 219a0f33cae0f164f4353b2171ecd4c08d5b7ced Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Sat, 25 May 2013 11:08:00 +0200 Subject: describe: make own copy of refname Do not retain a reference to the refname passed to the each_ref_fn callback get_name(), because there is no guarantee of the lifetimes of these names. Instead, make a local copy when needed. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano diff --git a/builtin/describe.c b/builtin/describe.c index 6636a68..3dc09eb 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -42,7 +42,7 @@ struct commit_name { unsigned prio:2; /* annotated tag = 2, tag = 1, head = 0 */ unsigned name_checked:1; unsigned char sha1[20]; - const char *path; + char *path; }; static const char *prio_names[] = { "head", "lightweight", "annotated", @@ -126,12 +126,14 @@ static void add_to_known_names(const char *path, } else { e->next = NULL; } + e->path = NULL; } e->tag = tag; e->prio = prio; e->name_checked = 0; hashcpy(e->sha1, sha1); - e->path = path; + free(e->path); + e->path = xstrdup(path); } } -- cgit v0.10.2-6-g49f6