summaryrefslogtreecommitdiff
path: root/databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y
diff options
context:
space:
mode:
Diffstat (limited to 'databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y')
-rw-r--r--databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y69
1 files changed, 69 insertions, 0 deletions
diff --git a/databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y b/databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y
new file mode 100644
index 000000000000..e9d23cac61ea
--- /dev/null
+++ b/databases/postgresql73-server/files/patch-src-pl-plpgsql-src-gram-y
@@ -0,0 +1,69 @@
+--- src/pl/plpgsql/src/gram.y 2005/01/27 01:44:42 1.39.2.1 REL7_3_9
++++ src/pl/plpgsql/src/gram.y 2005/02/08 18:22:45 1.39.2.2 REL7_3_STABLE
+@@ -4,7 +4,7 @@
+ * procedural language
+ *
+ * IDENTIFICATION
+- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.39.2.1 2005/01/27 01:44:42 neilc Exp $
++ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.39.2.2 2005/02/08 18:22:45 tgl Exp $
+ *
+ * This software is copyrighted by Jan Wieck - Hamburg.
+ *
+@@ -1612,6 +1612,14 @@ read_sql_construct(int until,
+ }
+ if (plpgsql_SpaceScanned)
+ plpgsql_dstring_append(&ds, " ");
++
++ /* Check for array overflow */
++ if (nparams >= 1024)
++ {
++ plpgsql_error_lineno = lno;
++ elog(ERROR, "too many variables specified in SQL statement");
++ }
++
+ switch (tok)
+ {
+ case T_VARIABLE:
+@@ -1761,6 +1769,13 @@ make_select_stmt(void)
+
+ while ((tok = yylex()) == ',')
+ {
++ /* Check for array overflow */
++ if (nfields >= 1024)
++ {
++ plpgsql_error_lineno = yylineno;
++ elog(ERROR, "too many INTO variables specified");
++ }
++
+ tok = yylex();
+ switch(tok)
+ {
+@@ -1809,6 +1824,14 @@ make_select_stmt(void)
+
+ if (plpgsql_SpaceScanned)
+ plpgsql_dstring_append(&ds, " ");
++
++ /* Check for array overflow */
++ if (nparams >= 1024)
++ {
++ plpgsql_error_lineno = yylineno;
++ elog(ERROR, "too many variables specified in SQL statement");
++ }
++
+ switch (tok)
+ {
+ case T_VARIABLE:
+@@ -1892,6 +1915,13 @@ make_fetch_stmt(void)
+
+ while ((tok = yylex()) == ',')
+ {
++ /* Check for array overflow */
++ if (nfields >= 1024)
++ {
++ plpgsql_error_lineno = yylineno;
++ elog(ERROR, "too many INTO variables specified");
++ }
++
+ tok = yylex();
+ switch(tok)
+ {