aboutsummaryrefslogtreecommitdiff
path: root/src/backend/main/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/main/main.c')
-rw-r--r--src/backend/main/main.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index ec36b602f45..a20b39886d5 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -8,10 +8,13 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/main/main.c,v 1.29 2000/01/26 05:56:30 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/main/main.c,v 1.30 2000/09/06 14:15:19 petere Exp $
*
*-------------------------------------------------------------------------
*/
+#include "postgres.h"
+
+#include <pwd.h>
#include <unistd.h>
#if defined(__alpha__) && !defined(linux)
@@ -22,7 +25,6 @@
#undef ASSEMBLER
#endif
-#include "postgres.h"
#ifdef USE_LOCALE
#include <locale.h>
#endif
@@ -100,5 +102,15 @@ main(int argc, char *argv[])
exit(BootstrapMain(argc - 1, argv + 1)); /* remove the -boot arg
* from the command line */
else
- exit(PostgresMain(argc, argv, argc, argv));
+ {
+ struct passwd *pw;
+
+ pw = getpwuid(geteuid());
+ if (!pw)
+ {
+ fprintf(stderr, "%s: invalid current euid", argv[0]);
+ exit(1);
+ }
+ exit(PostgresMain(argc, argv, argc, argv, pw->pw_name));
+ }
}