Thread: pgsql: Fix handling of escape sequences in postgres_fdw.application_nam

pgsql: Fix handling of escape sequences in postgres_fdw.application_nam

From
Michael Paquier
Date:
Fix handling of escape sequences in postgres_fdw.application_name

postgres_fdw.application_name relies on MyProcPort to define the data
that should be added to escape sequences %u (user name) or %d (database
name).  However this code could be run in processes that lack a
MyProcPort, like an autovacuum process, causing crashes.

The code generating the application name is made more flexible with this
commit, so as it now generates no data for %u and %d if MyProcPort is
missing, and a simple "unknown" if MyProcPort exists, but the expected
fields are not set.

Reported-by: Alexander Lakhin
Author: Kyotaro Horiguchi, Michael Paquier
Reviewed-by: Hayato Kuroda, Masahiko Sawada
Discussion: https://postgr.es/m/17789-8b31c5a4672b74d9@postgresql.org
Backpatch-through: 15

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/5bace41abc317ae8ecf3397e9e92f3b0e5444c69

Modified Files
--------------
contrib/postgres_fdw/option.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)