]> source.dussan.org Git - poi.git/commitdiff
60305 -- gracefully handle truncated images while reading pictstream
authorTim Allison <tallison@apache.org>
Fri, 28 Oct 2016 13:39:40 +0000 (13:39 +0000)
committerTim Allison <tallison@apache.org>
Fri, 28 Oct 2016 13:39:40 +0000 (13:39 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1767023 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java

index 93fa92a457bf55b383e63bcff86c9321a852b227..493d46174623df313490947d7b9f7a453acd4a63 100644 (file)
@@ -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);