From e7257b8eb21345b6dc340b236a9213e079d05fba Mon Sep 17 00:00:00 2001 From: Tom Lane 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 c6d9ff5123..314e90d4df 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