aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
diff options
context:
space:
mode:
authorAndreas Beeker <kiwiwings@apache.org>2017-08-11 20:47:48 +0000
committerAndreas Beeker <kiwiwings@apache.org>2017-08-11 20:47:48 +0000
commita98350e40bd3c6ed74bdc2cc89372f765d0663f6 (patch)
treebd5dcdcf90d32afbc8a109cfe587278cbb90b0b1 /src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
parent299f33b8d80acf091c0ac5dface0e3778432f10c (diff)
downloadpoi-a98350e40bd3c6ed74bdc2cc89372f765d0663f6.tar.gz
poi-a98350e40bd3c6ed74bdc2cc89372f765d0663f6.zip
#61381 - PushbackInputStreams passed to ZipHelper may not hold 8 bytes
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1804854 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/poi/poifs/macros/VBAMacroReader.java')
-rw-r--r--src/java/org/apache/poi/poifs/macros/VBAMacroReader.java15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java b/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
index 83eb7295c7..bad012e293 100644
--- a/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
+++ b/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
@@ -17,8 +17,8 @@
package org.apache.poi.poifs.macros;
-import static org.apache.poi.util.StringUtil.startsWithIgnoreCase;
import static org.apache.poi.util.StringUtil.endsWithIgnoreCase;
+import static org.apache.poi.util.StringUtil.startsWithIgnoreCase;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -27,7 +27,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.PushbackInputStream;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
@@ -38,6 +37,7 @@ import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.DocumentInputStream;
import org.apache.poi.poifs.filesystem.DocumentNode;
import org.apache.poi.poifs.filesystem.Entry;
+import org.apache.poi.poifs.filesystem.FileMagic;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
import org.apache.poi.util.CodePageUtil;
@@ -67,13 +67,12 @@ public class VBAMacroReader implements Closeable {
private NPOIFSFileSystem fs;
public VBAMacroReader(InputStream rstream) throws IOException {
- PushbackInputStream stream = new PushbackInputStream(rstream, 8);
- byte[] header8 = IOUtils.peekFirst8Bytes(stream);
-
- if (NPOIFSFileSystem.hasPOIFSHeader(header8)) {
- fs = new NPOIFSFileSystem(stream);
+ InputStream is = FileMagic.prepareToCheckMagic(rstream);
+ FileMagic fm = FileMagic.valueOf(is);
+ if (fm == FileMagic.OLE2) {
+ fs = new NPOIFSFileSystem(is);
} else {
- openOOXML(stream);
+ openOOXML(is);
}
}