summaryrefslogtreecommitdiff
path: root/src/backend/commands/tablecmds.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2018-12-17 12:44:09 +0900
committerMichael Paquier <michael@paquier.xyz>2018-12-17 12:44:09 +0900
commit696c68c2be44d478403be5c76e6e8160fabdb083 (patch)
tree0c58f3f16920eb86780d9722ccc6222e5d64d723 /src/backend/commands/tablecmds.c
parentd5d86e2cd6b82da7bc57a6b2be8c808463e73d93 (diff)
Fix use-after-free bug when renaming constraints
This is an oversight from recent commit b13fd344. While on it, tweak the previous test with a better name for the renamed primary key. Detected by buildfarm member prion which forces relation cache release with -DRELCACHE_FORCE_RELEASE. Back-patch down to 9.4 as the previous commit.
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r--src/backend/commands/tablecmds.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 8c2f650a88a..49a53816a65 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -2429,12 +2429,12 @@ rename_constraint_internal(Oid myrelid,
if (targetrelation)
{
- relation_close(targetrelation, NoLock); /* close rel but keep lock */
-
/*
* Invalidate relcache so as others can see the new constraint name.
*/
CacheInvalidateRelcache(targetrelation);
+
+ relation_close(targetrelation, NoLock); /* close rel but keep lock */
}
return constraintOid;