Skip to content

Commit 0a6cc28

Browse files
committed
gistendscan() forgot to free so->giststate.
This oversight led to a massive memory leak --- upwards of 10KB per tuple --- during creation-time verification of an exclusion constraint based on a GIST index. In most other scenarios it'd just be a leak of 10KB that would be recovered at end of query, so not too significant; though perhaps the leak would be noticeable in a situation where a GIST index was being used in a nestloop inner indexscan. In any case, it's a real leak of long standing, so patch all supported branches. Per report from Harald Fuchs.
1 parent e6faf91 commit 0a6cc28

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

src/backend/access/gist/gistscan.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ gistendscan(PG_FUNCTION_ARGS)
240240
GISTScanOpaque so = (GISTScanOpaque) scan->opaque;
241241

242242
freeGISTstate(so->giststate);
243+
pfree(so->giststate);
243244
MemoryContextDelete(so->queueCxt);
244245
MemoryContextDelete(so->tempCxt);
245246
pfree(so->tmpTreeItem);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy