Re: [PATCH 1/5] Add is_absolute_path(), make_absolute_path() and normalize_path()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 26, 2007, 18:46 UTC
- Message-ID
- <7v4pjr80lr.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.64.0707261456040.14781@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 12 quoted lines
> Agree. Maybe a comment above the function, like > > /* > * The function normalize_path() converts ".." and "." names in > * the given path so that "foo/../bar/./" will come out as "bar". > * > * Note: normalize_path() does not follow symlinks, so if "foo" is > * a symlink in the example above, the result will not work as > * expected. > */ > > Hmm?
That comment only states the obvious and does not give a clue to the callers when it should not be used, I am afraid. For example, paths taken out of index or recursively reading trees are Ok because there will not be ".." and "." in them. Making a path given by the user relative to the cwd by prepending what is returned by setup_git_directory() may or may not be safe, depending on how setup_git_directory() does things (I think the original one is safe; I am reasonably sure with the current one when GIT_WORK_TREE is not in use; I do not know when that environment variable is there with the current code with or without your patch series).