Fix memory leak in tokenize_file, per report from Vadim Passynkov.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 18 Sep 2004 01:23:12 +0000 (01:23 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 18 Sep 2004 01:23:12 +0000 (01:23 +0000)
src/backend/libpq/hba.c

index 5e8903d6acc7d1bc18a68462601bfce4cd83a979..6e36f5c5bcd472bc2ce5c5450b7d3d7087cd694a 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.116.2.2 2004/05/25 19:11:26 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.116.2.3 2004/09/18 01:23:12 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -168,6 +168,9 @@ next_token(FILE *fp, char *buf, const int bufsz)
  *  Tokenize file and handle file inclusion and comma lists. We have
  *  to  break  apart  the  commas  to  expand  any  file names then
  *  reconstruct with commas.
+ *
+ * The result is always a palloc'd string.  If it's zero-length then
+ * we have reached EOL.
  */
 static char *
 next_token_expand(FILE *file)
@@ -333,6 +336,8 @@ tokenize_file(FILE *file)
        {
            /* we are at real or logical EOL, so force a new line List */
            next_line = NIL;
+           /* Don't forget to pfree the next_token_expand result */
+           pfree(buf);
        }
 
        /* Advance line number whenever we reach EOL */