Thread: [COMMITTERS] pgsql: Sanitize newlines in object names in "pg_restore -l" output.
[COMMITTERS] pgsql: Sanitize newlines in object names in "pg_restore -l" output.
From
Tom Lane
Date:
Sanitize newlines in object names in "pg_restore -l" output. Commits 89e0bac86 et al replaced newlines with spaces in object names printed in SQL comments, but we neglected to consider that the same names are also printed by "pg_restore -l", and a newline would render the output unparseable by "pg_restore -L". Apply the same replacement in "-l" output. Since "pg_restore -L" doesn't actually examine any object names, only the dump ID field that starts each line, this is enough to fix things for its purposes. The previous fix was treated as a security issue, and we might have done that here as well, except that the issue was reported publicly to start with. Anyway it's hard to see how this could be exploited for SQL injection; "pg_restore -L" doesn't do much with the file except parse it for leading integers. Per bug #14587 from Milos Urbanek. Back-patch to all supported versions. Discussion: https://postgr.es/m/20170310155318.1425.30483@wrigleys.postgresql.org Branch ------ REL9_6_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/4cdd81d9015857eb5c81fe57e95b4c3e52d9614b Modified Files -------------- src/bin/pg_dump/pg_backup_archiver.c | 39 +++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-)