From: Junio C Hamano Date: Thu, 26 Jul 2007 18:46:08 GMT Subject: Re: [PATCH 1/5] Add is_absolute_path(), make_absolute_path() and normalize_path() Message-ID: <7v4pjr80lr.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Johannes Schindelin writes: > 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).