diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-06-08 20:28:21 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-06-08 20:28:21 +0000 |
commit | 32af13f03d7d7ac3b0664800e707b3765005490c (patch) | |
tree | 94718624786c174120a82d92db26064d2079658a /src/backend/utils/adt/arrayfuncs.c | |
parent | 327d86ca99a47174edfc70e56c4098186694b536 (diff) | |
download | postgresql-32af13f03d7d7ac3b0664800e707b3765005490c.tar.gz postgresql-32af13f03d7d7ac3b0664800e707b3765005490c.zip |
Add missing check for too-few-inputs when replacing a zero-dimensional
array.
Diffstat (limited to 'src/backend/utils/adt/arrayfuncs.c')
-rw-r--r-- | src/backend/utils/adt/arrayfuncs.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 6511efb3561..62361932f98 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.103 2004/06/06 00:41:27 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.104 2004/06/08 20:28:21 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1837,6 +1837,12 @@ array_set_slice(ArrayType *array, lb[i] = lowerIndx[i]; } + /* complain if too few source items; we ignore extras, however */ + if (nelems < ArrayGetNItems(nSubscripts, dim)) + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmsg("source array too small"))); + return construct_md_array(dvalues, nSubscripts, dim, lb, elmtype, elmlen, elmbyval, elmalign); } |