pgsql: Specify the encoding of input to fmtId() - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Specify the encoding of input to fmtId()
Date
Msg-id E1thVPx-006Nyf-19@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Specify the encoding of input to fmtId()

This commit adds fmtIdEnc() and fmtQualifiedIdEnc(), which allow to specify
the encoding as an explicit argument.  Additionally setFmtEncoding() is
provided, which defines the encoding when no explicit encoding is provided, to
avoid breaking all code using fmtId().

All users of fmtId()/fmtQualifiedId() are either converted to the explicit
version or a call to setFmtEncoding() has been added.

This commit does not yet utilize the now well-defined encoding, that will
happen in a subsequent commit.

Reviewed-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Backpatch-through: 13
Security: CVE-2025-1094

Branch
------
REL_13_STABLE

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

Modified Files
--------------
src/bin/pg_dump/pg_backup_archiver.c |  1 +
src/bin/pg_dump/pg_dump.c            |  1 +
src/bin/pg_dump/pg_dumpall.c         |  1 +
src/bin/psql/command.c               |  3 ++
src/bin/scripts/common.c             |  5 ++-
src/bin/scripts/createdb.c           |  2 +
src/bin/scripts/createuser.c         |  2 +
src/bin/scripts/dropdb.c             | 13 +++---
src/bin/scripts/dropuser.c           |  3 +-
src/bin/scripts/reindexdb.c          |  8 ++--
src/bin/scripts/vacuumdb.c           |  5 ++-
src/fe_utils/string_utils.c          | 84 +++++++++++++++++++++++++++++++++---
src/include/fe_utils/string_utils.h  |  3 ++
13 files changed, 110 insertions(+), 21 deletions(-)


pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: Fix handling of invalidly encoded data in escaping functions
Next
From: Andres Freund
Date:
Subject: pgsql: Fix type in test_escape test