pgsql: Check for stack overflow in transformSetOperationTree().

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Check for stack overflow in transformSetOperationTree().
Дата
Msg-id E1TXiKn-0003tq-OP@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Check for stack overflow in transformSetOperationTree().

Since transformSetOperationTree() recurses, it can be driven to stack
overflow with enough UNION/INTERSECT/EXCEPT clauses in a query.  Add a
check to ensure it fails cleanly instead of crashing.  Per report from
Matthew Gerber (though it's not clear whether this is the only thing
going wrong for him).

Historical note: I think the reasoning behind not putting a check here in
the beginning was that the check in transformExpr() ought to be sufficient
to guard the whole parser.  However, because transformSetOperationTree()
recurses all the way to the bottom of the set-operation tree before doing
any analysis of the statement's expressions, that check doesn't save it.

Branch
------
REL9_1_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/f8ffe6234a09faeaabe034643b619462df897ca9

Modified Files
--------------
src/backend/parser/analyze.c |    4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: fxjr@pgfoundry.org (User Fxjr)
Дата:
Сообщение: npgsql - Npgsql2: [#1011271] NpgsqlSchema: Use InvariantCulture on all
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Check for stack overflow in transformSetOperationTree().