pgsql: Check column list length in XMLTABLE/JSON_TABLE alias

Started by Alvaro Herreraabout 4 years ago3 messagescomitters
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

Check column list length in XMLTABLE/JSON_TABLE alias

We weren't checking the length of the column list in the alias clause of
an XMLTABLE or JSON_TABLE function (a "tablefunc" RTE), and it was
possible to make the server crash by passing an overly long one. Fix it
by throwing an error in that case, like the other places that deal with
alias lists.

In passing, modify the equivalent test used for join RTEs to look like
the other ones, which was different for no apparent reason.

This bug came in when XMLTABLE was born in version 10; backpatch to all
stable versions.

Reported-by: Wang Ke <krking@zju.edu.cn>
Discussion: /messages/by-id/17480-1c9d73565bb28e90@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0fbf0112002355efb2bb525ab88edf891dbfd033

Modified Files
--------------
src/backend/parser/parse_clause.c | 15 ---------------
src/backend/parser/parse_relation.c | 19 +++++++++++++++++--
src/test/regress/expected/int2.out | 4 ++++
src/test/regress/expected/join.out | 3 +++
src/test/regress/expected/jsonb_sqljson.out | 2 ++
src/test/regress/expected/with.out | 5 +++++
src/test/regress/expected/xml.out | 3 +++
src/test/regress/sql/int2.sql | 4 ++++
src/test/regress/sql/join.sql | 3 +++
src/test/regress/sql/jsonb_sqljson.sql | 2 ++
src/test/regress/sql/with.sql | 3 +++
src/test/regress/sql/xml.sql | 3 +++
12 files changed, 49 insertions(+), 17 deletions(-)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#1)
Re: pgsql: Check column list length in XMLTABLE/JSON_TABLE alias

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

Check column list length in XMLTABLE/JSON_TABLE alias

Per buildfarm, you forgot to update xml_1.out and xml_2.out.

regards, tom lane

#3Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#2)
Re: pgsql: Check column list length in XMLTABLE/JSON_TABLE alias

On 2022-May-18, Tom Lane wrote:

Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

Check column list length in XMLTABLE/JSON_TABLE alias

Per buildfarm, you forgot to update xml_1.out and xml_2.out.

Sigh. Will fix.

--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
That's because in Europe they call me by name, and in the US by value!"