setup: translate symlinks in filename when using absolute paths
otherwise, comparison to validate against work tree will fail when the path includes a symlink and the name passed is not canonical. Signed-off-by: Carlo Marcelo Arenas Belon <carenas@sajinet.com.pe> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
0ed7481347
commit
18e051a398
11
setup.c
11
setup.c
|
@ -7,10 +7,13 @@ static int inside_work_tree = -1;
|
|||
const char *prefix_path(const char *prefix, int len, const char *path)
|
||||
{
|
||||
const char *orig = path;
|
||||
char *sanitized = xmalloc(len + strlen(path) + 1);
|
||||
if (is_absolute_path(orig))
|
||||
strcpy(sanitized, path);
|
||||
else {
|
||||
char *sanitized;
|
||||
if (is_absolute_path(orig)) {
|
||||
const char *temp = make_absolute_path(path);
|
||||
sanitized = xmalloc(len + strlen(temp) + 1);
|
||||
strcpy(sanitized, temp);
|
||||
} else {
|
||||
sanitized = xmalloc(len + strlen(path) + 1);
|
||||
if (len)
|
||||
memcpy(sanitized, prefix, len);
|
||||
strcpy(sanitized + len, path);
|
||||
|
|
Loading…
Reference in New Issue