mirror of
https://github.com/postgres/postgres.git
synced 2025-05-11 05:41:32 +03:00
Check for stack overrun in standard_ProcessUtility().
ProcessUtility can recurse, and indeed can be driven to infinite recursion, so it ought to have a check_stack_depth() call. This covers the reported bug (portal trying to execute itself) and a bunch of other cases that could perhaps arise somewhere. Per bug #15428 from Malthe Borch. Back-patch to all supported branches. Discussion: https://postgr.es/m/15428-b3c2915ec470b033@postgresql.org
This commit is contained in:
parent
a05f7053e8
commit
ca361554c2
@ -359,6 +359,9 @@ standard_ProcessUtility(Node *parsetree,
|
|||||||
{
|
{
|
||||||
bool isTopLevel = (context == PROCESS_UTILITY_TOPLEVEL);
|
bool isTopLevel = (context == PROCESS_UTILITY_TOPLEVEL);
|
||||||
|
|
||||||
|
/* This can recurse, so check for excessive recursion */
|
||||||
|
check_stack_depth();
|
||||||
|
|
||||||
check_xact_readonly(parsetree);
|
check_xact_readonly(parsetree);
|
||||||
|
|
||||||
if (completionTag)
|
if (completionTag)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user