diff --git a/src/main/java/com/licel/jcardsim/crypto/ByteContainer.java b/src/main/java/com/licel/jcardsim/crypto/ByteContainer.java index 240fb74f..0c7187f2 100644 --- a/src/main/java/com/licel/jcardsim/crypto/ByteContainer.java +++ b/src/main/java/com/licel/jcardsim/crypto/ByteContainer.java @@ -106,7 +106,7 @@ public void setBytes(byte[] buff) { * @param length length of data in byte array */ public void setBytes(byte[] buff, short offset, short length) { - if (data == null) { + if (data == null || (short) data.length != length) { switch (memoryType) { case JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT: data = JCSystem.makeTransientByteArray(length, JCSystem.CLEAR_ON_DESELECT); @@ -121,7 +121,7 @@ public void setBytes(byte[] buff, short offset, short length) { } Util.arrayCopy(buff, offset, data, (short) 0, length); // current length - this.length = length; + this.length = (short) data.length; } /**