From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Make canonicalize_path() more canonical. |
Date: | 2022-01-31 17:05:43 |
Message-ID: | E1nEa7b-0004fm-Hp@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Make canonicalize_path() more canonical.
Teach canonicalize_path() how to strip all unnecessary uses of "."
and "..", replacing the previous ad-hoc code that got rid of only
some such cases. In particular, we can always remove all such
uses from absolute paths.
The proximate reason to do this is that Windows rejects paths
involving ".." in some cases (in particular, you can't put one in a
symlink), so we ought to be sure we don't use ".." unnecessarily.
Moreover, it seems like good cleanup on general principles.
There is other path-munging code that could be simplified now, but
we'll leave that for followup work.
It is tempting to call this a bug fix and back-patch it. On the other
hand, the misbehavior can only be reached if a highly privileged user
does something dubious, so it's not unreasonable to say "so don't do
that". And this patch could result in unexpected behavioral changes,
in case anybody was expecting uses of ".." to stay put. So at least
for now, just put it in HEAD.
Shenhao Wang, editorialized a bit by me
Discussion: https://postgr.es/m/OSBPR01MB4214FA221FFE046F11F2AD74F2D49@OSBPR01MB4214.jpnprd01.prod.outlook.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/c10f830c511f0ba3e6f4c9d99f444d39e30440c8
Modified Files
--------------
contrib/adminpack/expected/adminpack.out | 2 +-
src/port/path.c | 258 +++++++++++++++++++-----
src/test/regress/expected/create_function_1.out | 4 +
src/test/regress/expected/misc_functions.out | 135 +++++++++++++
src/test/regress/regress.c | 10 +
src/test/regress/sql/create_function_1.sql | 5 +
src/test/regress/sql/misc_functions.sql | 27 +++
7 files changed, 387 insertions(+), 54 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-01-31 18:53:46 | pgsql: Simplify coding around path_contains_parent_reference(). |
Previous Message | Kyotaro Horiguchi | 2022-01-31 08:35:16 | Re: pgsql: plperl: windows: Use Perl_setlocale on 5.28+, fixing compile fai |