From 3026493ff299abc196fd2953e8ac5c7d7549ea0d Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 29 Nov 2002 16:38:42 +0000
Subject: [PATCH] This patch fixes two tiny memory leaks in pg_dump and two in
 pg_dumpall.

Neil Conway
---
 src/bin/pg_dump/pg_dump.c    | 4 +++-
 src/bin/pg_dump/pg_dumpall.c | 7 +++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 09b9e4ac697..cfc5578d546 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
  *	by PostgreSQL
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.308 2002/11/23 03:59:08 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.309 2002/11/29 16:38:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -3226,6 +3226,7 @@ dumpOneDomain(Archive *fout, TypeInfo *tinfo)
 					  "WHERE contypid = '%s'::pg_catalog.oid",
 					  tinfo->oid);
 
+	PQclear(res);
 	res = PQexec(g_conn, chkquery->data);
 	if (!res ||
 		PQresultStatus(res) != PGRES_TUPLES_OK)
@@ -3269,6 +3270,7 @@ dumpOneDomain(Archive *fout, TypeInfo *tinfo)
 	destroyPQExpBuffer(q);
 	destroyPQExpBuffer(delq);
 	destroyPQExpBuffer(query);
+	destroyPQExpBuffer(chkquery);
 }
 
 /*
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 0c4bad7e061..c3a76923740 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.10 2002/11/22 03:09:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.11 2002/11/29 16:38:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -403,7 +403,7 @@ dumpCreateDB(PGconn *conn)
 
 	for (i = 0; i < PQntuples(res); i++)
 	{
-		PQExpBuffer buf = createPQExpBuffer();
+		PQExpBuffer buf;
 		char	   *dbname = PQgetvalue(res, i, 0);
 		char	   *dbowner = PQgetvalue(res, i, 1);
 		char	   *dbencoding = PQgetvalue(res, i, 2);
@@ -413,6 +413,8 @@ dumpCreateDB(PGconn *conn)
 		if (strcmp(dbname, "template1") == 0)
 			continue;
 
+		buf = createPQExpBuffer();
+
 		if (output_clean)
 			appendPQExpBuffer(buf, "DROP DATABASE %s\n;", fmtId(dbname));
 
@@ -692,6 +694,7 @@ connectDatabase(const char *dbname, const char *pghost, const char *pgport,
 			exit(1);
 		}
 	}
+	PQclear(res);
 
 	return conn;
 }
-- 
GitLab