summaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
authorTom Lane2007-09-22 18:19:18 +0000
committerTom Lane2007-09-22 18:19:18 +0000
commitf316222930a1735105862423c25cc6ca4ccddee7 (patch)
tree78a7fca460eb1f9cb4992a53c34b59996668c5f6 /src/backend/postmaster
parentbbda96d76d6a10bbd662e4e71135b188e23a815b (diff)
Fix erroneous Assert() in syslogger process start in EXEC_BACKEND case,
per ITAGAKI Takahiro. Also, rewrite syslogger_forkexec() in hopes of eliminating the confusion in the first place.
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/syslogger.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c
index 001e206a96c..8ac38f0baa5 100644
--- a/src/backend/postmaster/syslogger.c
+++ b/src/backend/postmaster/syslogger.c
@@ -18,7 +18,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.39 2007/09/20 18:19:08 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.40 2007/09/22 18:19:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -608,10 +608,8 @@ static pid_t
syslogger_forkexec(void)
{
char *av[10];
- int ac = 0,
- bufc = 0,
- i;
- char numbuf[2][32];
+ int ac = 0;
+ char filenobuf[32];
av[ac++] = "postgres";
av[ac++] = "--forklog";
@@ -620,21 +618,18 @@ syslogger_forkexec(void)
/* static variables (those not passed by write_backend_variables) */
#ifndef WIN32
if (syslogFile != NULL)
- snprintf(numbuf[bufc++], 32, "%d", fileno(syslogFile));
+ snprintf(filenobuf, sizeof(filenobuf), "%d",
+ fileno(syslogFile));
else
- strcpy(numbuf[bufc++], "-1");
+ strcpy(filenobuf, "-1");
#else /* WIN32 */
if (syslogFile != NULL)
- snprintf(numbuf[bufc++], 32, "%ld",
+ snprintf(filenobuf, sizeof(filenobuf), "%ld",
_get_osfhandle(_fileno(syslogFile)));
else
- strcpy(numbuf[bufc++], "0");
+ strcpy(filenobuf, "0");
#endif /* WIN32 */
-
- /* Add to the arg list */
- Assert(bufc <= lengthof(numbuf));
- for (i = 0; i < bufc; i++)
- av[ac++] = numbuf[i];
+ av[ac++] = filenobuf;
av[ac] = NULL;
Assert(ac < lengthof(av));
@@ -652,7 +647,7 @@ syslogger_parseArgs(int argc, char *argv[])
{
int fd;
- Assert(argc == 5);
+ Assert(argc == 4);
argv += 3;
#ifndef WIN32