From: "Torsten Bögershausen" <tboegi@web.de>
To: Martin Erik Werner <martinerikwerner@gmail.com>, git@vger.kernel.org
Cc: richih@debian.org
Subject: Re: [PATCH 2/2] setup: Don't dereference in-tree symlinks for absolute paths
Date: Sun, 26 Jan 2014 18:19:25 +0100 [thread overview]
Message-ID: <52E5439D.7060002@web.de> (raw)
In-Reply-To: <1390746146-9478-3-git-send-email-martinerikwerner@gmail.com>
On 2014-01-26 15.22, Martin Erik Werner wrote:
> The prefix_path_gently() function currently applies real_path to
> everything if given an absolute path, dereferencing symlinks both
> outside and inside the work tree. In order to manipulate symliks in the
> work tree using absolute paths, symlinks should only be dereferenced
> outside the work tree.
>
> Modify prefix_path_gently() to first normalize the path in order to
> make sure path levels are separated by '/', then use this separator to
> check the real path of each level of the path until it has found the
> length that corresponds to the work tree.
>
> For absolute paths, the function did not, nor does now do, any actual
> prefixing, hence we simply remove the path corresponding to the work
> tree and return the remaining in-tree part of the path.
>
> Fixes t0060-82.
>
> Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
> ---
> setup.c | 54 ++++++++++++++++++++++++++++++++-------------------
> t/t0060-path-utils.sh | 2 +-
> 2 files changed, 35 insertions(+), 21 deletions(-)
>
> diff --git a/setup.c b/setup.c
> index 6c3f85f..bec587e 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -22,11 +22,41 @@ 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[strlen(path)];
Is this portable ?
This is variable-length array, isn't it ?
Using xmalloc() may be better
> if (remaining_prefix)
> *remaining_prefix = 0;
> + if (normalize_path_copy_len(npath, path, remaining_prefix))
> + return NULL;
> + const char *work_tree = get_git_work_tree();
declaration after statements should be avoided (not only here)
next prev parent reply other threads:[~2014-01-26 17:19 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-15 12:48 git-mv with absolute path derefereces symlinks Martin Erik Werner
2014-01-26 14:22 ` [PATCH 0/2] in-tree symlink handling with absolute paths Martin Erik Werner
2014-01-26 14:22 ` [PATCH 1/2] t0060: Add test for manipulating symlinks via " Martin Erik Werner
2014-01-26 14:22 ` [PATCH 2/2] setup: Don't dereference in-tree symlinks for " Martin Erik Werner
2014-01-26 17:19 ` Torsten Bögershausen [this message]
2014-01-27 0:07 ` Martin Erik Werner
2014-01-27 0:07 ` [PATCH v2 " Martin Erik Werner
2014-01-27 0:49 ` Duy Nguyen
2014-01-27 16:31 ` Junio C Hamano
2014-01-31 20:21 ` [PATCH v3 0/4] " Martin Erik Werner
2014-02-02 1:59 ` [PATCH v4 0/4] Handling of " Martin Erik Werner
2014-02-02 1:59 ` [PATCH v4 1/4] t0060: Add test for manipulating symlinks via " Martin Erik Werner
2014-02-02 1:59 ` [PATCH v4 2/4] t0060: Add test for prefix_path when path == work tree Martin Erik Werner
2014-02-02 1:59 ` [PATCH v4 3/4] setup: Add 'abspath_part_inside_repo' function Martin Erik Werner
2014-02-02 2:19 ` Duy Nguyen
2014-02-02 2:23 ` Duy Nguyen
2014-02-02 11:13 ` Martin Erik Werner
2014-02-02 11:21 ` David Kastrup
2014-02-02 11:37 ` Torsten Bögershausen
2014-02-02 12:09 ` Martin Erik Werner
2014-02-02 12:27 ` Torsten Bögershausen
2014-02-02 12:15 ` Duy Nguyen
2014-02-02 1:59 ` [PATCH v4 4/4] setup: Don't dereference in-tree symlinks for absolute paths Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 0/5] Handling of " Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 1/5] t0060: Add test for manipulating symlinks via " Martin Erik Werner
2014-02-03 18:50 ` Junio C Hamano
2014-02-03 19:52 ` Junio C Hamano
2014-02-03 20:12 ` Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 2/5] t0060: Add test for prefix_path when path == work tree Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 3/5] t0060: Add tests for prefix_path when path begins with " Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 4/5] setup: Add 'abspath_part_inside_repo' function Martin Erik Werner
2014-02-03 21:00 ` Junio C Hamano
2014-02-03 23:16 ` Martin Erik Werner
2014-02-04 18:09 ` Junio C Hamano
2014-02-04 18:32 ` Martin Erik Werner
2014-02-02 16:35 ` [PATCH v5 5/5] setup: Don't dereference in-tree symlinks for absolute paths Martin Erik Werner
2014-02-03 4:15 ` Duy Nguyen
2014-02-03 13:17 ` Martin Erik Werner
2014-02-04 0:05 ` Junio C Hamano
2014-02-04 14:25 ` [PATCH v6 0/6] Handling of " Martin Erik Werner
2014-02-04 14:25 ` [PATCH v6 1/6] t3004: Add test for ls-files on symlinks via " Martin Erik Werner
2014-02-04 14:25 ` [PATCH v6 2/6] t0060: Add test for prefix_path " Martin Erik Werner
2014-02-04 14:25 ` [PATCH v6 3/6] t0060: Add test for prefix_path when path == work tree Martin Erik Werner
2014-02-04 14:25 ` [PATCH v6 4/6] t0060: Add tests for prefix_path when path begins with " Martin Erik Werner
2014-02-04 20:00 ` Torsten Bögershausen
2014-02-04 20:07 ` Junio C Hamano
2014-02-04 14:25 ` [PATCH v6 5/6] setup: Add 'abspath_part_inside_repo' function Martin Erik Werner
2014-02-04 19:18 ` Junio C Hamano
2014-02-04 14:25 ` [PATCH v6 6/6] setup: Don't dereference in-tree symlinks for absolute paths Martin Erik Werner
2014-01-31 20:22 ` [PATCH v3 1/4] t0060: Add test for manipulating symlinks via " Martin Erik Werner
2014-01-31 20:22 ` [PATCH v3 2/4] t0060: Add test for prefix_path when path == work tree Martin Erik Werner
2014-01-31 20:22 ` [PATCH v3 3/4] setup: Add 'abspath_part_inside_repo' function Martin Erik Werner
2014-01-31 22:37 ` Torsten Bögershausen
2014-02-01 1:31 ` Martin Erik Werner
2014-02-01 2:31 ` Duy Nguyen
2014-01-31 20:23 ` [PATCH v3 4/4] setup: Don't dereference in-tree symlinks for absolute paths Martin Erik Werner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52E5439D.7060002@web.de \
--to=tboegi@web.de \
--cc=git@vger.kernel.org \
--cc=martinerikwerner@gmail.com \
--cc=richih@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.