summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Conway2005-01-27 01:44:42 +0000
committerNeil Conway2005-01-27 01:44:42 +0000
commit5036a19f685896a71b5e618d1edfb8fbd0da8dc8 (patch)
tree626dce32b81e04ff692fefea32fb8071f341438e
parent483fa35176cbc35d871eee98e3e8de41c4668f69 (diff)
Backpatch fix for buffer overrun in parsing refcursor parameters to
REL7_3_STABLE.
-rw-r--r--src/pl/plpgsql/src/gram.y6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pl/plpgsql/src/gram.y b/src/pl/plpgsql/src/gram.y
index d22e4aa0e44..30cc0e92895 100644
--- a/src/pl/plpgsql/src/gram.y
+++ b/src/pl/plpgsql/src/gram.y
@@ -4,7 +4,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.39 2002/11/01 22:52:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.39.2.1 2005/01/27 01:44:42 neilc Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -478,6 +478,10 @@ decl_cursor_arglist : decl_cursor_arg
{
int i = $1->nfields++;
+ /* Guard against overflowing the array on malicious input */
+ if (i >= 1024)
+ yyerror("too many parameters specified for refcursor");
+
$1->fieldnames[i] = $3->refname;
$1->varnos[i] = $3->varno;