Index: modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java =================================================================== --- modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java (revision 467329) +++ modules/awt/src/main/java/common/java/awt/image/DataBufferUShort.java (working copy) @@ -20,13 +20,21 @@ */ package java.awt.image; +import org.apache.harmony.awt.internal.nls.Messages; + public final class DataBufferUShort extends DataBuffer { short data[][]; public DataBufferUShort(short dataArrays[][], int size, int offsets[]) { super(TYPE_USHORT, size, dataArrays.length, offsets); + for(int i = 0; i < dataArrays.length; i++){ + if(dataArrays[i].length < offsets[i] + size){ + // awt.28d=Length of dataArray[{0}] is less than size + offset[{1}] + throw new IllegalArgumentException(Messages.getString("awt.28D", i, i)); //$NON-NLS-1$ + } + } data = dataArrays.clone(); } @@ -37,6 +45,10 @@ public DataBufferUShort(short dataArray[], int size, int offset) { super(TYPE_USHORT, size, 1, offset); + if(dataArray.length < size + offset){ + // awt.28E=Length of dataArray is less than size + offset + throw new IllegalArgumentException(Messages.getString("awt.28E")); //$NON-NLS-1$ + } data = new short[1][]; data[0] = dataArray; } Index: modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties =================================================================== --- modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties (revision 474710) +++ modules/awt/src/main/java/common/org/apache/harmony/awt/internal/nls/messages.properties (working copy) @@ -476,6 +476,8 @@ awt.28A=childMinX + width results in integer overflow awt.28B=childMinY + height results in integer overflow awt.28C=Rect is null +awt.28D=Length of dataArray[{0}] is less than size + offset[{1}] +awt.28E=Length of dataArray is less than size + offset awt.err.00=file dialog {0} error! awt.err.01=error: {0}