From: Tom Lane Date: Fri, 15 Apr 2016 04:02:26 +0000 (-0400) Subject: Fix memory leak in GIN index scans. X-Git-Tag: REL9_6_BETA1~154 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0e766bd7f77774075297526bd2da8f3de226c1f;p=thirdparty%2Fpostgresql.git Fix memory leak in GIN index scans. The code had a query-lifespan memory leak when encountering GIN entries that have posting lists (rather than posting trees, ie, there are a relatively small number of heap tuples containing this index key value). With a suitable data distribution this could add up to a lot of leakage. Problem seems to have been introduced by commit 36a35c550, so back-patch to 9.4. Julien Rouhaud --- diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index b79ba1e62af..610829852a6 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -281,6 +281,7 @@ collectMatchBitmap(GinBtreeData *btree, GinBtreeStack *stack, ipd = ginReadTuple(btree->ginstate, scanEntry->attnum, itup, &nipd); tbm_add_tuples(scanEntry->matchBitmap, ipd, nipd, false); scanEntry->predictNumberResult += GinGetNPosting(itup); + pfree(ipd); } /*