diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-06-17 22:21:41 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-06-17 22:21:41 +0000 |
commit | 5f74d499bfc07c43f44d0989aab6b23c6b5bfbb0 (patch) | |
tree | 235f522a4c20f8acfcb04ec73883631607c12ce0 /src/backend/parser/parse_coerce.c | |
parent | 4c6538259659b6325da5205005846162c78fd593 (diff) | |
download | postgresql-5f74d499bfc07c43f44d0989aab6b23c6b5bfbb0.tar.gz postgresql-5f74d499bfc07c43f44d0989aab6b23c6b5bfbb0.zip |
Defend against function calls with more than 8 arguments (code
used to overrun its fixed-size arrays before detecting error; not cool).
Also, replace uses of magic constant '8' with 'MAXFARGS'.
Diffstat (limited to 'src/backend/parser/parse_coerce.c')
-rw-r--r-- | src/backend/parser/parse_coerce.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 9e0e77b051b..1563a0eef73 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.17 1999/05/29 03:17:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.18 1999/06/17 22:21:41 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -20,6 +20,7 @@ #include "parser/parse_expr.h" #include "catalog/pg_type.h" +#include "parser/parse_func.h" #include "parser/parse_type.h" #include "parser/parse_target.h" #include "parser/parse_coerce.h" @@ -132,7 +133,7 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids) HeapTuple ftup; int i; Type tp; - Oid oid_array[8]; + Oid oid_array[MAXFARGS]; /* run through argument list... */ for (i = 0; i < nargs; i++) @@ -160,7 +161,7 @@ can_coerce_type(int nargs, Oid *input_typeids, Oid *func_typeids) */ else if (input_typeids[i] != UNKNOWNOID) { - MemSet(&oid_array[0], 0, 8 * sizeof(Oid)); + MemSet(oid_array, 0, MAXFARGS * sizeof(Oid)); oid_array[0] = input_typeids[i]; /* |