]> granicus.if.org Git - postgresql/commitdiff
Fix pg_ctl's readfile() to not go into infinite loop on an empty file
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Sep 2009 02:40:59 +0000 (02:40 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Sep 2009 02:40:59 +0000 (02:40 +0000)
(could happen if either postgresql.conf or postmaster.opts is empty).
It's been broken since the C version was written for 8.0, so patch
all the way back.

initdb's copy of the function is broken in the same way, but it's
less important there since the input files should never be empty.
Patch that in HEAD only, and also fix some cosmetic differences that
crept into that copy of the function.

Per report from Corry Haines and Jeff Davis.

src/bin/pg_ctl/pg_ctl.c

index 40ede2c1a839bb9712df01a9dc7fd7e294c48587..7a7d03e8f695d6e8bbb5ad004682a1fa82dbb78a 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.111 2009/06/11 14:49:07 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.111.2.1 2009/09/02 02:40:59 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -292,7 +292,7 @@ static char **
 readfile(const char *path)
 {
        FILE       *infile;
-       int                     maxlength = 0,
+       int                     maxlength = 1,
                                linelen = 0;
        int                     nlines = 0;
        char      **result;