postgres.git / summary / log / commit / refs
commit 8082bea2b06eb6bcd6cce4cc7801094c17045b4f
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri Mar 24 18:43:03 2017 +0000
Fix use-after-free bug
Detected by buildfarm member prion
src/backend/commands/statscmds.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c
index 416309106a7..07503299610 100644
--- a/src/backend/commands/statscmds.c
+++ b/src/backend/commands/statscmds.c
@@ -230,6 +230,12 @@ CreateStatistics(CreateStatsStmt *stmt)
statoid = HeapTupleGetOid(htup);
heap_freetuple(htup);
heap_close(statrel, RowExclusiveLock);
+
+ /*
+ * Invalidate relcache so that others see the new statistics.
+ */
+ CacheInvalidateRelcache(rel);
+
relation_close(rel, NoLock);
/*
@@ -250,11 +256,6 @@ CreateStatistics(CreateStatsStmt *stmt)
ObjectAddressSet(address, StatisticExtRelationId, statoid);
- /*
- * Invalidate relcache so that others see the new statistics.
- */
- CacheInvalidateRelcache(rel);
-
return address;
}
[parent: 3428ef791159]