diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index b8b51f1e6350473d7f7cc375aa04882ff733bd11..6e29609ff6d11915640a6f5157060cbd51fe2183 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);
 	}