diff options
| author | Tom Lane | 2016-06-16 16:17:03 +0000 |
|---|---|---|
| committer | Tom Lane | 2016-06-16 16:17:25 +0000 |
| commit | 23ed284a5dda5286bd91bb601f30e5e6fae478af (patch) | |
| tree | 60e33400e30bc183c0a6e5379ddad97c423c61a2 /src | |
| parent | cd05539ec7f5eba2c1370447f27d2343c96bbeee (diff) | |
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/postmaster/postmaster.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index b8b51f1e635..6e29609ff6d 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -783,10 +783,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); } |
