Fix use-after-release issue with pg_identify_object_as_address()
authorMichael Paquier
Wed, 28 Apr 2021 02:58:08 +0000 (11:58 +0900)
committerMichael Paquier
Wed, 28 Apr 2021 02:58:08 +0000 (11:58 +0900)
Spotted by buildfarm member prion, with -DRELCACHE_FORCE_RELEASE.

Introduced in f7aab36.

Discussion: https://postgr.es/m/2759018.1619577848@sss.pgh.pa.us
Backpatch-through: 9.6

src/backend/catalog/objectaddress.c

index ad9740098e40f926ae6c5ee4fb16b9a5d894d291..d1d7a10b4383266dd6d24bf0545182f25c4571e1 100644 (file)
@@ -5619,7 +5619,7 @@ getObjectIdentityParts(const ObjectAddress *object,
                    break;
                }
                trigForm = (Form_pg_event_trigger) GETSTRUCT(tup);
-               evtname = NameStr(trigForm->evtname);
+               evtname = pstrdup(NameStr(trigForm->evtname));
                appendStringInfoString(&buffer, quote_identifier(evtname));
                if (objname)
                    *objname = list_make1(evtname);