]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Avoid leaking system path from pg_available_extensions
authorAndrew Dunstan <andrew@dunslane.net>
Wed, 20 May 2026 00:49:15 +0000 (08:49 +0800)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 30 May 2026 01:51:00 +0000 (21:51 -0400)
commitdb5ed03217b9c238703df8b4b286115d6e940488
tree0c71a469cda9addb8fbc0a40c2ec4130b44ad997
parent7dc5bbcf220be05786a08aad2455c61b6dbd4b78
Avoid leaking system path from pg_available_extensions

The documentation says that when extension_control_path is set to an
empty string, the default '$system' path is still assumed.  However,
get_extension_control_directories() added the system extension directory
with a NULL macro in that case.  As a result, pg_available_extensions
could expose the expanded system directory path instead of reporting
'$system' as the location.

Record the implicitly-added system directory with the '$system' macro, so
pg_available_extensions reports the documented symbolic location and does
not leak the actual system path.

Update the extension_control_path TAP test to check the reported location
directly.

Author: Chao Li <lic@highgo.com>
Reviewed-by: Lu Feng <fnlo1995@gmail.com>
Reviewed-by: Matheus Alcantara <matheusssilv97@gmail.com>
Reviewed-by: Jim Jones <jim.jones@uni-muenster.de>
Discussion: https://postgr.es/m/357C774A-ECE9-4455-B641-315205D4D9A1@gmail.com
src/backend/commands/extension.c
src/test/modules/test_extensions/t/001_extension_control_path.pl