From ca8d888f831fd4ee5297d4b05323265025f92d6f Mon Sep 17 00:00:00 2001 From: Tim Allison Date: Fri, 28 Oct 2016 13:39:40 +0000 Subject: [PATCH] 60305 -- gracefully handle truncated images while reading pictstream git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1767023 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java index 93fa92a457..493d461746 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java @@ -400,6 +400,14 @@ public final class HSLFSlideShowImpl extends POIDocument implements Closeable { logger.log(POILogger.ERROR, "Problem reading picture: Invalid image type 0, on picture with length " + imgsize + ".\nYou document will probably become corrupted if you save it!"); logger.log(POILogger.ERROR, "" + pos); } else { + //The pictstream can be truncated halfway through a picture. + //This is not a problem if the pictstream contains extra pictures + //that are not used in any slide -- BUG-60305 + if (pos+imgsize > pictstream.length) { + logger.log(POILogger.WARN, "\"Pictures\" stream may have ended early. In some circumstances, this is not a problem; " + + "in others, this could indicate a corrupt file"); + break; + } // Build the PictureData object from the data try { HSLFPictureData pict = HSLFPictureData.create(pt); -- 2.39.5