add_rev_cmdline(): make a copy of the name argument

Instead of assuming that the memory pointed to by the name argument
will live forever, make a local copy of it before storing it in the
ref_cmdline_info.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty 2013-05-25 11:08:02 +02:00 коммит произвёл Junio C Hamano
Родитель b87dbcc899
Коммит df835d3a0c
1 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -898,6 +898,10 @@ static int limit_list(struct rev_info *revs)
return 0;
}
/*
* Add an entry to refs->cmdline with the specified information.
* *name is copied.
*/
static void add_rev_cmdline(struct rev_info *revs,
struct object *item,
const char *name,
@ -909,7 +913,7 @@ static void add_rev_cmdline(struct rev_info *revs,
ALLOC_GROW(info->rev, nr + 1, info->alloc);
info->rev[nr].item = item;
info->rev[nr].name = name;
info->rev[nr].name = xstrdup(name);
info->rev[nr].whence = whence;
info->rev[nr].flags = flags;
info->nr++;