修复GetSynonymAndSchemaName中内存use-after-free的问题

描述:
应该对synForm->synname进行拷贝返回给调用者
This commit is contained in:
cc_db_dev
2023-08-08 10:16:40 +08:00
parent 2b55050354
commit 29de645aae

View File

@ -585,7 +585,7 @@ void GetSynonymAndSchemaName(Oid synOid, char** synName_p, char** synSchema_p)
HeapTuple synTuple = SearchSysCache1(SYNOID, ObjectIdGetDatum(synOid));
if (HeapTupleIsValid(synTuple)) {
Form_pg_synonym synForm = (Form_pg_synonym)GETSTRUCT(synTuple);
*synName_p = NameStr(synForm->synname);
*synName_p = pstrdup(NameStr(synForm->synname));
*synSchema_p = get_namespace_name(synForm->synnamespace);
ReleaseSysCache(synTuple);