OSDN Git Service

Add missing check for too-few-inputs when replacing a zero-dimensional
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Jun 2004 20:28:21 +0000 (20:28 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 8 Jun 2004 20:28:21 +0000 (20:28 +0000)
array.

src/backend/utils/adt/arrayfuncs.c

index 6511efb..6236193 100644 (file)
@@ -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);
        }