* 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.
*
}
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:
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)
{
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:
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)
{