From 8082bea2b06eb6bcd6cce4cc7801094c17045b4f Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri, 24 Mar 2017 15:43:03 -0300
Subject: [PATCH] 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;
 }
 
-- 
GitLab