Fix use-after-free bug
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 24 Mar 2017 18:43:03 +0000 (15:43 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 24 Mar 2017 18:43:15 +0000 (15:43 -0300)
Detected by buildfarm member prion

src/backend/commands/statscmds.c

index 416309106a7f4bf73ab6dea56fd1d8907c66d78a..0750329961037ffa5c1f22024a3893d688e2cf98 100644 (file)
@@ -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;
 }