From e7257b8eb21345b6dc340b236a9213e079d05fba Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 27 Nov 2001 23:48:12 +0000
Subject: [PATCH] Fix nasty memory leak in pg_restore: _PrintData called
 inflateInit but never did inflateEnd, thus leaking some tens of KB per call. 
 Which added up *real fast* when dealing with, say, thousands of BLOBs. Thanks
 to Lane Rollins for the bug report.

---
 src/bin/pg_dump/pg_backup_custom.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c
index c6d9ff51236..314e90d4df7 100644
--- a/src/bin/pg_dump/pg_backup_custom.c
+++ b/src/bin/pg_dump/pg_backup_custom.c
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.16 2001/10/25 05:49:52 momjian Exp $
+ *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_custom.c,v 1.17 2001/11/27 23:48:12 tgl Exp $
  *
  * Modifications - 28-Jun-2000 - pjw@rhyme.com.au
  *
@@ -622,6 +622,8 @@ _PrintData(ArchiveHandle *AH)
 			out[zlibOutSize - zp->avail_out] = '\0';
 			ahwrite(out, 1, zlibOutSize - zp->avail_out, AH);
 		}
+		if (inflateEnd(zp) != Z_OK)
+			die_horribly(AH, modulename, "could not close compression library: %s\n", zp->msg);
 	}
 #endif
 
-- 
GitLab