Re: [PATCH v5 5/5] setup: Don't dereference in-tree symlinks for absolute paths
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Feb 3, 2014, 04:15 UTC
- Message-ID
- <CACsJy8DX8bh2cAx+a_cJafAOYB7Ly=y28jAGo1L8NEmkWaZv=Q@mail.gmail.com>
- In-Reply-To
- <1391358940-17373-6-git-send-email-martinerikwerner@gmail.com>
On Sun, Feb 2, 2014 at 11:35 PM, Martin Erik Werner <martinerikwerner@gmail.com> wrote:
Show 28 quoted lines
> 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 <pclouds@gmail.com>
> } else {
> sanitized = xmalloc(len + strlen(path) + 1);
> if (len)-- Duy