aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-09-22 18:19:24 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-09-22 18:19:24 +0000
commita4f72d59405f22a851d827a7a8d031863c3b2be3 (patch)
tree354bef02302206857aa6874bc0f49c8be49aedf9
parenta9f08b41aca64f1233451704526c81594aaeeee8 (diff)
downloadpostgresql-a4f72d59405f22a851d827a7a8d031863c3b2be3.tar.gz
postgresql-a4f72d59405f22a851d827a7a8d031863c3b2be3.zip
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.
-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 8c0c6b787ef..5ac5b6edffa 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.29.2.3 2007/08/02 23:17:20 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.29.2.4 2007/09/22 18:19:24 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -584,10 +584,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";
@@ -596,21 +594,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));
@@ -628,7 +623,7 @@ syslogger_parseArgs(int argc, char *argv[])
{
int fd;
- Assert(argc == 5);
+ Assert(argc == 4);
argv += 3;
#ifndef WIN32