aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/arrayfuncs.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-06-08 20:28:21 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-06-08 20:28:21 +0000
commit32af13f03d7d7ac3b0664800e707b3765005490c (patch)
tree94718624786c174120a82d92db26064d2079658a /src/backend/utils/adt/arrayfuncs.c
parent327d86ca99a47174edfc70e56c4098186694b536 (diff)
downloadpostgresql-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.c8
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);
}