From 5c5dcf0d4fc7c12723ffb0b71cc89ba5e195b0ac Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 14 Dec 2006 11:49:56 +0000 Subject: [PATCH] If we have a picture of type 0, don't even bother trying to create a PictureData object for it git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@487181 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hslf/HSLFSlideShow.java | 32 +++++++++++------- .../apache/poi/hslf/data/PictureTypeZero.ppt | Bin 0 -> 100864 bytes .../poi/hslf/usermodel/TestPictures.java | 17 ++++++++++ 3 files changed, 36 insertions(+), 13 deletions(-) create mode 100644 src/scratchpad/testcases/org/apache/poi/hslf/data/PictureTypeZero.ppt diff --git a/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java index 0dce7cb56..4dac22aa6 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java +++ b/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java @@ -255,30 +255,36 @@ public class HSLFSlideShow extends POIDocument List p = new ArrayList(); int pos = 0; - while (pos < pictstream.length) { + // An empty picture record (length 0) will take up 8 bytes + while (pos <= (pictstream.length-8)) { int offset = pos; - //image signature + // Image signature int signature = LittleEndian.getUShort(pictstream, pos); pos += LittleEndian.SHORT_SIZE; - //image type + 0xF018 + // Image type + 0xF018 int type = LittleEndian.getUShort(pictstream, pos); pos += LittleEndian.SHORT_SIZE; - //image size + // Image size (excluding the 8 byte header) int imgsize = LittleEndian.getInt(pictstream, pos); pos += LittleEndian.INT_SIZE; - byte[] imgdata = new byte[imgsize]; System.arraycopy(pictstream, pos, imgdata, 0, imgdata.length); - try { - PictureData pict = PictureData.create(type - 0xF018); - pict.setRawData(imgdata); - pict.setOffset(offset); - p.add(pict); - } catch(IllegalArgumentException e) { - System.err.println("Problem reading picture: " + e + "\nYou document will probably become corrupted if you save it!"); - } + // If they type (including the bonus 0xF018) is 0, skip it + if(type == 0) { + System.err.println("Problem reading picture: Invalid image type 0, on picture with length" + imgsize + ".\nYou document will probably become corrupted if you save it!"); + } else { + // Build the PictureData object from the data + try { + PictureData pict = PictureData.create(type - 0xF018); + pict.setRawData(imgdata); + pict.setOffset(offset); + p.add(pict); + } catch(IllegalArgumentException e) { + System.err.println("Problem reading picture: " + e + "\nYou document will probably become corrupted if you save it!"); + } + } pos += imgsize; } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureTypeZero.ppt b/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureTypeZero.ppt new file mode 100644 index 0000000000000000000000000000000000000000..66b4e50c0011578c937f1a5e094a5ab4b1d4b212 GIT binary patch literal 100864 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

G0~m2=MQ+} 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