Repair unsafe/unportable snprintf usage in pg_restore.
authorTom Lane
Sun, 10 Feb 2019 00:45:38 +0000 (19:45 -0500)
committerTom Lane
Sun, 10 Feb 2019 00:45:38 +0000 (19:45 -0500)
commited46d0d322b54b618557b88948c72bc2711d7c1b
tree20fbe066ac1de802d5d9d3bb96e0b929b6cf81d4
parent37f3a7751efb2c2c3128dbc9f2571a99fe5f6396
Repair unsafe/unportable snprintf usage in pg_restore.

warn_or_exit_horribly() was blithely passing a potentially-NULL
string pointer to a %s format specifier.  That works (at least
to the extent of not crashing) on some platforms, but not all,
and since we switched to our own snprintf.c it doesn't work
for us anywhere.

Of the three string fields being handled this way here, I think
that only "owner" is supposed to be nullable ... but considering
that this is error-reporting code, it has very little business
assuming anything, so put in defenses for all three.

Per a crash observed on buildfarm member crake and then
reproduced here.  Because of the portability aspect,
back-patch to all supported versions.
src/bin/pg_dump/pg_backup_archiver.c