Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 57d3dc2

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 f695042 commit 57d3dc2

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
@@ -242,6 +242,7 @@ gistendscan(PG_FUNCTION_ARGS)
242242
GISTScanOpaque so = (GISTScanOpaque) scan->opaque;
243243

244244
freeGISTstate(so->giststate);
245+
pfree(so->giststate);
245246
MemoryContextDelete(so->queueCxt);
246247
MemoryContextDelete(so->tempCxt);
247248
pfree(so->tmpTreeItem);

0 commit comments

Comments
 (0)