45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From 21a134a26100b377191735ad49f996eac03047de Mon Sep 17 00:00:00 2001
|
|
From: guiyao <guiyao@huawei.com>
|
|
Date: Thu, 17 Dec 2020 09:34:13 -0500
|
|
Subject: [PATCH] backport to fix CVE-2018-16850
|
|
|
|
---
|
|
src/backend/utils/adt/ruleutils.c | 10 ++++++----
|
|
1 files changed, 6 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
|
|
index 4c9a49c..0eea491 100644
|
|
--- a/src/backend/utils/adt/ruleutils.c
|
|
+++ b/src/backend/utils/adt/ruleutils.c
|
|
@@ -952,22 +952,24 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
|
|
value = fastgetattr(ht_trig, Anum_pg_trigger_tgoldtable,
|
|
tgrel->rd_att, &isnull);
|
|
if (!isnull)
|
|
- tgoldtable = NameStr(*((NameData *) DatumGetPointer(value)));
|
|
+ tgoldtable = NameStr(*DatumGetName(value));
|
|
else
|
|
tgoldtable = NULL;
|
|
value = fastgetattr(ht_trig, Anum_pg_trigger_tgnewtable,
|
|
tgrel->rd_att, &isnull);
|
|
if (!isnull)
|
|
- tgnewtable = NameStr(*((NameData *) DatumGetPointer(value)));
|
|
+ tgnewtable = NameStr(*DatumGetName(value));
|
|
else
|
|
tgnewtable = NULL;
|
|
if (tgoldtable != NULL || tgnewtable != NULL)
|
|
{
|
|
appendStringInfoString(&buf, "REFERENCING ");
|
|
if (tgoldtable != NULL)
|
|
- appendStringInfo(&buf, "OLD TABLE AS %s ", tgoldtable);
|
|
+ appendStringInfo(&buf, "OLD TABLE AS %s ",
|
|
+ quote_identifier(tgoldtable));
|
|
if (tgnewtable != NULL)
|
|
- appendStringInfo(&buf, "NEW TABLE AS %s ", tgnewtable);
|
|
+ appendStringInfo(&buf, "NEW TABLE AS %s ",
|
|
+ quote_identifier(tgnewtable));
|
|
}
|
|
|
|
if (TRIGGER_FOR_ROW(trigrec->tgtype))
|
|
--
|
|
1.8.3.1
|