v1-0001-Check-for-stack-overflow-in-transformFromClauseIt.patch

application/octet-stream

Filename: v1-0001-Check-for-stack-overflow-in-transformFromClauseIt.patch
Type: application/octet-stream
Part: 0
Message: Re: BUG #17583: Server crashes on executing CROSS JOIN with very big number of tables

Patch

Format: format-patch
Series: patch v1-0001
Subject: Check for stack overflow in transformFromClauseItem
File+
src/backend/parser/parse_clause.c 3 0
From e80802186dbe129e3748a647f7b807ea916f169b Mon Sep 17 00:00:00 2001
From: Richard Guo <guofenglinux@gmail.com>
Date: Fri, 12 Aug 2022 17:18:13 +0800
Subject: [PATCH v1] Check for stack overflow in transformFromClauseItem

---
 src/backend/parser/parse_clause.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index 5a18107e79..b85fbebd00 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -1050,6 +1050,9 @@ transformFromClauseItem(ParseState *pstate, Node *n,
 						ParseNamespaceItem **top_nsitem,
 						List **namespace)
 {
+	/* Guard against stack overflow due to overly deep subtree */
+	check_stack_depth();
+
 	if (IsA(n, RangeVar))
 	{
 		/* Plain relation reference, or perhaps a CTE reference */
-- 
2.31.0