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