mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-01 13:41:17 +02:00
Document why we only handle trailing "..".
This commit is contained in:
parent
721e53785d
commit
6effc19d9c
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user