--- dist/src/java/org/apache/poi/ddf/EscherMetafileBlip.java.orig 2008-04-23 17:24:41.811000000 +1000 +++ dist/src/java/org/apache/poi/ddf/EscherMetafileBlip.java 2008-04-23 17:25:36.965000000 +1000 @@ -83,8 +83,10 @@ field_6_fCompression = data[pos]; pos++; field_7_fFilter = data[pos]; pos++; - raw_pictureData = new byte[field_5_cbSave]; - System.arraycopy( data, pos, raw_pictureData, 0, field_5_cbSave ); + // XXX: Trusting field_5_cbSave results in inconsistent record size. + int remainingBytes = bytesAfterHeader - 50; + raw_pictureData = new byte[remainingBytes]; + System.arraycopy( data, pos, raw_pictureData, 0, remainingBytes ); // 0 means DEFLATE compression // 0xFE means no compression