aboutsummaryrefslogtreecommitdiff
path: root/src/backend/main/main.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-02-01 00:31:59 +0000
committerBruce Momjian <bruce@momjian.us>2006-02-01 00:31:59 +0000
commit62a142036ba59c8167ab4539a414e56ba4c39faa (patch)
tree5c0ebf00e2e9a5569db8ea3a1985224fe7f796d0 /src/backend/main/main.c
parentc6ef3264bebd442ae19a850abd774ed4bde1722f (diff)
downloadpostgresql-62a142036ba59c8167ab4539a414e56ba4c39faa.tar.gz
postgresql-62a142036ba59c8167ab4539a414e56ba4c39faa.zip
Set progname early in the postmaster/postgres binary, rather than doing
it later. This fixes a problem where EXEC_BACKEND didn't have progname set, causing a segfault if log_min_messages was set below debug2 and our own snprintf.c was being used. Also alway strdup() progname. Backpatch to 8.1.X and 8.0.X.
Diffstat (limited to 'src/backend/main/main.c')
-rw-r--r--src/backend/main/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index c2ea5fc8578..64d77451c0b 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.99 2006/01/05 03:01:34 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.100 2006/02/01 00:31:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -45,7 +45,7 @@
#include "libpq/pqsignal.h"
#endif
-
+const char *progname;
int
main(int argc, char *argv[])
@@ -77,6 +77,8 @@ main(int argc, char *argv[])
char *env_locale;
#endif
+ progname = get_progname(argv[0]);
+
/*
* On some platforms, unaligned memory accesses result in a kernel trap;
* the default kernel behavior is to emulate the memory access, but this
@@ -246,7 +248,7 @@ main(int argc, char *argv[])
* possibly first argument) we were called with. The lack of consistency
* here is historical.
*/
- if (strcmp(get_progname(argv[0]), "postmaster") == 0)
+ if (strcmp(progname, "postmaster") == 0)
{
/* Called as "postmaster" */
exit(PostmasterMain(argc, argv));