postgres.git / summary / log / commit / refs

commit    72c437f6e464e6fd35a84d3fde7795cb13a7b453
Author:   Tomas Vondra <tomas.vondra@postgresql.org>
Date:     Thu Jul 31 13:15:44 2025 +0000
First released in: 18.0

    Schema-qualify unnest() in ALTER DATABASE ... RESET
    
    Commit 9df8727c5067 failed to schema-quality the unnest() call in the
    query used to list the variables in ALTER DATABASE ... RESET. If there's
    another unnest() function in the search_path, this could cause either
    failures, or even security issues (when the tab-completion gets used by
    privileged accounts).
    
    Report and fix by Dagfinn Ilmari Mannsåker. Backpatch to 18, same as
    9df8727c5067.
    
    Author: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
    Reviewed-by: jian he <jian.universality@gmail.com>
    Discussion: https://postgr.es/m/87qzyghw2x.fsf%40wibble.ilmari.org
    Discussion: https://postgr.es/m/87tt4lumqz.fsf%40wibble.ilmari.org
    Backpatch-through: 18


src/bin/psql/tab-complete.in.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index f2734f8f273..39bf3024ed4 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -1002,7 +1002,7 @@ static const SchemaQuery Query_for_trigger_of_table = { #define Query_for_list_of_database_vars \ "SELECT conf FROM ("\ -" SELECT setdatabase, pg_catalog.split_part(unnest(setconfig),'=',1) conf"\ +" SELECT setdatabase, pg_catalog.split_part(pg_catalog.unnest(setconfig),'=',1) conf"\ " FROM pg_db_role_setting "\ " ) s, pg_database d "\ " WHERE s.setdatabase = d.oid "\ [parent: c0ae03384fa3]