Skip to content
Snippets Groups Projects
Commit 0a6cc285 authored by Tom Lane's avatar Tom Lane
Browse files

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.
parent e6faf910
No related branches found
No related tags found
No related merge requests found
...@@ -240,6 +240,7 @@ gistendscan(PG_FUNCTION_ARGS) ...@@ -240,6 +240,7 @@ gistendscan(PG_FUNCTION_ARGS)
GISTScanOpaque so = (GISTScanOpaque) scan->opaque; GISTScanOpaque so = (GISTScanOpaque) scan->opaque;
freeGISTstate(so->giststate); freeGISTstate(so->giststate);
pfree(so->giststate);
MemoryContextDelete(so->queueCxt); MemoryContextDelete(so->queueCxt);
MemoryContextDelete(so->tempCxt); MemoryContextDelete(so->tempCxt);
pfree(so->tmpTreeItem); pfree(so->tmpTreeItem);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment