mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Require the schema qualification in pg_temp.type_name(arg).
Commit aa27977fe2
introduced this
restriction for pg_temp.function_name(arg); do likewise for types
created in temporary schemas. Programs that this breaks should add
"pg_temp." schema qualification or switch to arg::type_name syntax.
Back-patch to 9.4 (all supported versions).
Reviewed by Tom Lane. Reported by Tom Lane.
Security: CVE-2019-10208
This commit is contained in:
@ -9475,6 +9475,14 @@ get_coercion_expr(Node *arg, deparse_context *context,
|
||||
if (!PRETTY_PAREN(context))
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
|
||||
/*
|
||||
* Never emit resulttype(arg) functional notation. A pg_proc entry could
|
||||
* take precedence, and a resulttype in pg_temp would require schema
|
||||
* qualification that format_type_with_typemod() would usually omit. We've
|
||||
* standardized on arg::resulttype, but CAST(arg AS resulttype) notation
|
||||
* would work fine.
|
||||
*/
|
||||
appendStringInfo(buf, "::%s",
|
||||
format_type_with_typemod(resulttype, resulttypmod));
|
||||
}
|
||||
|
Reference in New Issue
Block a user