Avoid crash in "postgres -C guc" for a GUC with a null string value.

Emit "(null)" instead, which was the behavior all along on platforms
that don't crash, eg OS X.  Per report from Jehan-Guillaume de Rorthais.
Back-patch to 9.2 where -C option was introduced.

Michael Paquier

Report: <20160615204036.2d35d86a@firost>
This commit is contained in:
Tom Lane 2016-06-16 12:17:03 -04:00
parent b000afea65
commit 0b0baf2621
1 changed files with 7 additions and 3 deletions

View File

@ -827,10 +827,14 @@ PostmasterMain(int argc, char *argv[])
if (output_config_variable != NULL)
{
/*
* permission is handled because the user is reading inside the data
* dir
* "-C guc" was specified, so print GUC's value and exit. No extra
* permission check is needed because the user is reading inside the
* data dir.
*/
puts(GetConfigOption(output_config_variable, false, false));
const char *config_val = GetConfigOption(output_config_variable,
false, false);
puts(config_val ? config_val : "(null)");
ExitPostmaster(0);
}