Skip to content
Snippets Groups Projects
Commit 6effc19d authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Document why we only handle trailing "..".

parent 721e5378
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/port/path.c,v 1.52 2005/08/11 03:53:25 momjian Exp $
* $PostgreSQL: pgsql/src/port/path.c,v 1.53 2005/08/12 02:48:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -284,7 +284,13 @@ canonicalize_path(char *path)
if (len > 2 && strcmp(path + len - 2, "/.") == 0)
trim_directory(path);
/* We can only deal with "/usr/local/..", not "/usr/local/../.." */
/*
* Process only a single trailing "..", and only if ".." does
* not preceed it.
* So, we only deal with "/usr/local/..", not with "/usr/local/../..".
* We don't handle the even more complex cases, like
* "usr/local/../../.." and "usr/local/../bin/../..".
*/
else if (len > 3 && strcmp(path + len - 3, "/..") == 0 &&
(len != 5 || strcmp(path, "../..") != 0) &&
(len < 6 || strcmp(path + len - 6, "/../..") != 0))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment