You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2017/12/28 08:45:36 UTC

svn commit: r1819403 - in /poi/trunk: src/integrationtest/org/apache/poi/hssf/usermodel/ src/integrationtest/org/apache/poi/stress/ src/scratchpad/src/org/apache/poi/hwpf/model/ src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/ test-data/document/

Author: centic
Date: Thu Dec 28 08:45:36 2017
New Revision: 1819403

URL: http://svn.apache.org/viewvc?rev=1819403&view=rev
Log:
Bug 61911: Avoid IndexOutOfBounds access when reading pictures

Added:
    poi/trunk/test-data/document/61911.doc
Modified:
    poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java
    poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java

Modified: poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java?rev=1819403&r1=1819402&r2=1819403&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java Thu Dec 28 08:45:36 2017
@@ -68,13 +68,10 @@ public class RecordsStresser {
     // a test-case to test this locally without executing the full TestAllFiles
     @Test
     public void test() throws Exception {
-        InputStream stream = new FileInputStream("test-data/spreadsheet/15556.xls");
-        try {
+        try (InputStream stream = new FileInputStream("test-data/spreadsheet/15556.xls")) {
             HSSFWorkbook wb = new HSSFWorkbook(stream);
             handleWorkbook(wb);
             wb.close();
-        } finally {
-            stream.close();
         }
     }
 }

Modified: poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java?rev=1819403&r1=1819402&r2=1819403&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java Thu Dec 28 08:45:36 2017
@@ -21,9 +21,12 @@ import static org.junit.Assert.assertNot
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.util.List;
 
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.hwpf.model.PicturesTable;
+import org.apache.poi.hwpf.usermodel.Picture;
 import org.junit.Test;
 
 public class HWPFFileHandler extends POIFSFileHandler {
@@ -33,7 +36,11 @@ public class HWPFFileHandler extends POI
         assertNotNull(doc.getBookmarks());
         assertNotNull(doc.getCharacterTable());
         assertNotNull(doc.getEndnotes());
-        
+
+        PicturesTable picturesTable = doc.getPicturesTable();
+        List<Picture> pictures = picturesTable.getAllPictures();
+        assertNotNull(pictures);
+
         handlePOIDocument(doc);
     }
 
@@ -54,11 +61,8 @@ public class HWPFFileHandler extends POI
         
         stream = new FileInputStream(file);
         try {
-            WordExtractor extractor = new WordExtractor(stream);
-            try {
+            try (WordExtractor extractor = new WordExtractor(stream)) {
                 assertNotNull(extractor.getText());
-            } finally {
-                extractor.close();
             }
         } finally {
             stream.close();

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java?rev=1819403&r1=1819402&r2=1819403&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java Thu Dec 28 08:45:36 2017
@@ -304,6 +304,10 @@ public final class StyleSheet {
             return NIL_CHP;
         }
 
+        if (styleIndex == -1) {
+            return NIL_CHP;
+        }
+
         return (_styleDescriptions[styleIndex] != null ? _styleDescriptions[styleIndex]
                 .getCHP() : NIL_CHP);
     }
@@ -318,6 +322,10 @@ public final class StyleSheet {
             return NIL_PAP;
         }
 
+        if (styleIndex == -1) {
+            return NIL_PAP;
+        }
+
         if (_styleDescriptions[styleIndex] == null) {
             return NIL_PAP;
         }
@@ -338,6 +346,10 @@ public final class StyleSheet {
             return NIL_CHPX;
         }
 
+        if (styleIndex == -1) {
+            return NIL_CHPX;
+        }
+
         if (_styleDescriptions[styleIndex] == null) {
             return NIL_CHPX;
         }
@@ -358,6 +370,10 @@ public final class StyleSheet {
             return NIL_PAPX;
         }
 
+        if (styleIndex == -1) {
+            return NIL_PAPX;
+        }
+
         if (_styleDescriptions[styleIndex] == null) {
             return NIL_PAPX;
         }

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java?rev=1819403&r1=1819402&r2=1819403&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java Thu Dec 28 08:45:36 2017
@@ -38,10 +38,7 @@ import org.apache.poi.hwpf.converter.Abs
 import org.apache.poi.hwpf.converter.WordToTextConverter;
 import org.apache.poi.hwpf.extractor.Word6Extractor;
 import org.apache.poi.hwpf.extractor.WordExtractor;
-import org.apache.poi.hwpf.model.FieldsDocumentPart;
-import org.apache.poi.hwpf.model.FileInformationBlock;
-import org.apache.poi.hwpf.model.PlexOfField;
-import org.apache.poi.hwpf.model.SubdocumentType;
+import org.apache.poi.hwpf.model.*;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
@@ -903,4 +900,17 @@ public class TestBugs{
         HWPFDocument document = HWPFTestDataSamples.openSampleFile("ca.kwsymphony.www_education_School_Concert_Seat_Booking_Form_2011-12.doc");
         document.close();
     }
+
+    @Test
+    public void test61911() throws IOException {
+        HWPFDocument document = HWPFTestDataSamples.openSampleFile("61911.doc");
+
+        PicturesTable picturesTable = document.getPicturesTable();
+        List<Picture> pictures = picturesTable.getAllPictures();
+        assertNotNull(pictures);
+        assertEquals(0, pictures.size());
+
+        document.close();
+
+    }
 }

Added: poi/trunk/test-data/document/61911.doc
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/document/61911.doc?rev=1819403&view=auto
==============================================================================
Binary files poi/trunk/test-data/document/61911.doc (added) and poi/trunk/test-data/document/61911.doc Thu Dec 28 08:45:36 2017 differ



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org