Re: [PATCH v5 5/5] setup: Don't dereference in-tree symlinks for absolute paths
From: Duy Nguyen <hidden>
Date: 2016-06-15 22:59:48
On Sun, Feb 2, 2014 at 11:35 PM, Martin Erik Werner [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/setup.c b/setup.c index a2e60ab..230505c 100644 --- a/setup.c +++ b/setup.c@@ -86,11 +86,23 @@ char *prefix_path_gently(const char *prefix, int len, const char *orig = path; char *sanitized; if (is_absolute_path(orig)) { - const char *temp = real_path(path); - sanitized = xmalloc(len + strlen(temp) + 1); - strcpy(sanitized, temp); + char *npath; + + npath = xmalloc(strlen(path) + 1); if (remaining_prefix) *remaining_prefix = 0; + if (normalize_path_copy_len(npath, path, remaining_prefix)) { + free(npath); + return NULL; + } + if (abspath_part_inside_repo(npath)) { + free(npath); + return NULL; + } + + sanitized = xmalloc(strlen(npath) + 1); + strcpy(sanitized, npath); + free(npath);
We could replace these three lines with "sanitized = npath;". But it's not a big deal imo. The rest of the series looks good. Reviewed-by: Duy Nguyen <redacted>
} else {
sanitized = xmalloc(len + strlen(path) + 1);
if (len)-- Duy