]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix use-after-release issue with pg_identify_object_as_address()
authorMichael Paquier <michael@paquier.xyz>
Wed, 28 Apr 2021 02:58:43 +0000 (11:58 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 28 Apr 2021 02:58:43 +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 f7dd45342be9d003b8332a6d23e0e3e0256e74ad..64ceccbf004e4c9584d13137dab05ff2277c18da 100644 (file)
@@ -5092,7 +5092,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);