From: Michael Paquier Date: Wed, 28 Apr 2021 02:58:46 +0000 (+0900) Subject: Fix use-after-release issue with pg_identify_object_as_address() X-Git-Tag: REL_12_7~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=85a3e0be1e94b4e0e94d1480f43fe47ce7f68b62;p=thirdparty%2Fpostgresql.git Fix use-after-release issue with pg_identify_object_as_address() 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 --- diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index 5d713f5d86e..e3f811b019f 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -5091,7 +5091,7 @@ getObjectIdentityParts(const ObjectAddress *object, elog(ERROR, "cache lookup failed for event trigger %u", object->objectId); 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);