From 4467194b4479537c319a1842d27feaf027ac9fe2 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 20 Feb 2000 04:26:35 +0000
Subject: [PATCH] Reduce proc_exit(1) to proc_exit(0) for errors detected in
 backend command line processing.  As it stood, a bogus PGOPTIONS value from a
 client would force a database system restart.  Not bad as a denial-
 of-service attack...

---
 src/backend/tcop/postgres.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 2415ef3c96..1f333f46af 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.143 2000/02/19 22:10:47 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.144 2000/02/20 04:26:35 tgl Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -1256,7 +1256,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		(ShowParserStats || ShowPlannerStats || ShowExecutorStats))
 	{
 		fprintf(stderr, "-s can not be used together with -t.\n");
-		proc_exit(1);
+		proc_exit(0);
 	}
 
 	if (!DataDir)
@@ -1264,7 +1264,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		fprintf(stderr, "%s does not know where to find the database system "
 				"data.  You must specify the directory that contains the "
 				"database system either by specifying the -D invocation "
-			 "option or by setting the PGDATA environment variable.\n\n",
+				"option or by setting the PGDATA environment variable.\n\n",
 				argv[0]);
 		proc_exit(1);
 	}
@@ -1324,7 +1324,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		if (errs || argc != optind || DBName == NULL)
 		{
 			usage(argv[0]);
-			proc_exit(1);
+			proc_exit(0);
 		}
 		pq_init();				/* initialize libpq at backend startup */
 		whereToSendOutput = Remote;
@@ -1337,7 +1337,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		if (errs || argc - optind > 1)
 		{
 			usage(argv[0]);
-			proc_exit(1);
+			proc_exit(0);
 		}
 		else if (argc - optind == 1)
 			DBName = argv[optind];
@@ -1345,7 +1345,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		{
 			fprintf(stderr, "%s: USER undefined and no database specified\n",
 					argv[0]);
-			proc_exit(1);
+			proc_exit(0);
 		}
 
 		/*
@@ -1503,14 +1503,14 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 	if (!IsUnderPostmaster)
 	{
 		puts("\nPOSTGRES backend interactive interface ");
-		puts("$Revision: 1.143 $ $Date: 2000/02/19 22:10:47 $\n");
+		puts("$Revision: 1.144 $ $Date: 2000/02/20 04:26:35 $\n");
 	}
 
 	/*
 	 * Initialize the deferred trigger manager
 	 */
 	if (DeferredTriggerInit() != 0)
-		proc_exit(1);
+		proc_exit(0);
 
 	SetProcessingMode(NormalProcessing);