diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2022-01-31 13:53:38 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2022-01-31 13:53:38 -0500 |
commit | b426bd48ee3f5a6890038421f81df7ed919d73dc (patch) | |
tree | 4dd6902ccd50a53d3e7555e7ce5d3924146106b0 /src/backend/utils/adt/genfile.c | |
parent | c10f830c511f0ba3e6f4c9d99f444d39e30440c8 (diff) | |
download | postgresql-b426bd48ee3f5a6890038421f81df7ed919d73dc.tar.gz postgresql-b426bd48ee3f5a6890038421f81df7ed919d73dc.zip |
Simplify coding around path_contains_parent_reference().
Given the existing stipulation that path_contains_parent_reference()
must only be invoked on canonicalized paths, we can simplify things
in the wake of commit c10f830c5. It is now only possible to see
".." at the start of a relative path. That means we can simplify
path_contains_parent_reference() itself quite a bit, and it makes
the two existing outside call sites dead code, since they'd already
checked that the path is absolute.
We could now fold path_contains_parent_reference() into its only
remaining caller path_is_relative_and_below_cwd(). But it seems
better to leave it as a separately callable function, in case any
extensions are using it.
Also document the pre-existing requirement for
path_is_relative_and_below_cwd's input to be likewise canonicalized.
Shenhao Wang and Tom Lane
Discussion: https://postgr.es/m/OSBPR01MB4214FA221FFE046F11F2AD74F2D49@OSBPR01MB4214.jpnprd01.prod.outlook.com
Diffstat (limited to 'src/backend/utils/adt/genfile.c')
-rw-r--r-- | src/backend/utils/adt/genfile.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/src/backend/utils/adt/genfile.c b/src/backend/utils/adt/genfile.c index 542bbacaa24..fe6863d8b44 100644 --- a/src/backend/utils/adt/genfile.c +++ b/src/backend/utils/adt/genfile.c @@ -72,12 +72,6 @@ convert_and_check_filename(text *arg) */ if (is_absolute_path(filename)) { - /* Disallow '/a/b/data/..' */ - if (path_contains_parent_reference(filename)) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("reference to parent directory (\"..\") not allowed"))); - /* * Allow absolute paths if within DataDir or Log_directory, even * though Log_directory might be outside DataDir. |