From 7441a9566ae88152e19eac12bd09e189f7285cbf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 22 Sep 2007 18:19:24 +0000 Subject: [PATCH] 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. --- src/backend/postmaster/syslogger.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index 27483205b1..2dfda7e8c7 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -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 -- 2.39.5