From 0fd3027a67ab4a148c7d2f2bf0c2aed080e2a74b Mon Sep 17 00:00:00 2001 From: Tim Allison Date: Mon, 29 Oct 2018 15:48:44 +0000 Subject: [PATCH] bug 62624 -- fix npe by adding processing of module name mapping in VBAMacroReader git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1845138 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/poifs/macros/VBAMacroReader.java | 159 ++++++++++++++++-- .../poi/poifs/macros/TestVBAMacroReader.java | 14 ++ test-data/spreadsheet/62624.bin | Bin 0 -> 113152 bytes 3 files changed, 157 insertions(+), 16 deletions(-) create mode 100644 test-data/spreadsheet/62624.bin diff --git a/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java b/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java index c3a1c89e7..cb6f3b91f 100644 --- a/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java +++ b/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java @@ -20,9 +20,19 @@ package org.apache.poi.poifs.macros; import static org.apache.poi.util.StringUtil.endsWithIgnoreCase; import static org.apache.poi.util.StringUtil.startsWithIgnoreCase; -import java.io.*; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.Closeable; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -39,6 +49,8 @@ import org.apache.poi.util.CodePageUtil; import org.apache.poi.util.HexDump; import org.apache.poi.util.IOUtils; import org.apache.poi.util.LittleEndian; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; import org.apache.poi.util.RLEDecompressingInputStream; import org.apache.poi.util.StringUtil; @@ -56,6 +68,8 @@ import org.apache.poi.util.StringUtil; * @since 3.15-beta2 */ public class VBAMacroReader implements Closeable { + private static final POILogger LOGGER = POILogFactory.getLogger(VBAMacroReader.class); + protected static final String VBA_PROJECT_OOXML = "vbaProject.bin"; protected static final String VBA_PROJECT_POIFS = "VBA"; @@ -111,8 +125,13 @@ public class VBAMacroReader implements Closeable { public Map readMacroModules() throws IOException { final ModuleMap modules = new ModuleMap(); + //ascii -> unicode mapping for module names + //preserve insertion order + final Map moduleNameMap = new LinkedHashMap<>(); + findMacros(fs.getRoot(), modules); - findProjectProperties(fs.getRoot(), modules); + findModuleNameMap(fs.getRoot(), moduleNameMap, modules); + findProjectProperties(fs.getRoot(), moduleNameMap, modules); Map moduleSources = new HashMap<>(); for (Map.Entry entry : modules.entrySet()) { @@ -327,16 +346,33 @@ public class VBAMacroReader implements Closeable { } } - protected void findProjectProperties(DirectoryNode node, ModuleMap modules) throws IOException { + protected void findProjectProperties(DirectoryNode node, Map moduleNameMap, ModuleMap modules) throws IOException { for (Entry entry : node) { if ("project".equalsIgnoreCase(entry.getName())) { DocumentNode document = (DocumentNode)entry; DocumentInputStream dis = new DocumentInputStream(document); - readProjectProperties(dis, modules); + readProjectProperties(dis, moduleNameMap, modules); } else { for (Entry child : node) { if (child instanceof DirectoryNode) { - findProjectProperties((DirectoryNode)child, modules); + findProjectProperties((DirectoryNode)child, moduleNameMap, modules); + } + } + + } + } + } + + protected void findModuleNameMap(DirectoryNode node, Map moduleNameMap, ModuleMap modules) throws IOException { + for (Entry entry : node) { + if ("projectwm".equalsIgnoreCase(entry.getName())) { + DocumentNode document = (DocumentNode)entry; + DocumentInputStream dis = new DocumentInputStream(document); + readNameMapRecords(dis, moduleNameMap, modules.charset); + } else { + for (Entry child : node) { + if (child instanceof DirectoryNode) { + findModuleNameMap((DirectoryNode)child, moduleNameMap, modules); } } @@ -559,6 +595,75 @@ public class VBAMacroReader implements Closeable { return new ASCIIUnicodeStringPair(ascii, unicode); } + private static void readNameMapRecords(InputStream is, Map moduleNames, Charset charset) throws IOException { + //see 2.3.3 PROJECTwm Stream: Module Name Information + //multibytecharstring + String mbcs = null; + String unicode = null; + do { + try { + mbcs = readMBCS(is, charset); + } catch (EOFException e) { + return; + } + if (mbcs == null) { + return; + } + try { + unicode = readUnicode(is); + } catch (EOFException e) { + return; + } + if (mbcs != null && unicode != null) { + moduleNames.put(mbcs, unicode); + } + } while (mbcs != null && unicode != null); + } + + private static String readUnicode(InputStream is) throws IOException { + //reads null-terminated unicode string + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + int b0 = is.read(); + int b1 = is.read(); + + while ((b0 + b1) != 0) { + if (b0 == -1 || b1 == -1) { + throw new EOFException(); + } + + bos.write(b0); + bos.write(b1); + b0 = is.read(); + b1 = is.read(); + } + return new String (bos.toByteArray(), StandardCharsets.UTF_16LE); + } + + //returns a string if any bytes are read or null if two 0x00 are read + private static String readMBCS(InputStream is, Charset charset) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + int len = 0; + int b = is.read(); + while (b != 0) { + ++len; + if (b == -1) { + throw new EOFException(); + } + bos.write(b); + b = is.read(); + } + if (len == 0) { + b = is.read(); + if (b == -1) { + throw new EOFException(); + } + if (b != 0) { + LOGGER.log(POILogger.WARN, "expected two 0x00 at end of module name map"); + } + return null; + } + return new String(bos.toByteArray(), charset); + } /** * Read length bytes of MBCS (multi-byte character set) characters from the stream @@ -579,7 +684,8 @@ public class VBAMacroReader implements Closeable { return new String(buffer, 0, length, charset); } - protected void readProjectProperties(DocumentInputStream dis, ModuleMap modules) throws IOException { + protected void readProjectProperties(DocumentInputStream dis, + Map moduleNameMap, ModuleMap modules) throws IOException { InputStreamReader reader = new InputStreamReader(dis, modules.charset); StringBuilder builder = new StringBuilder(); char[] buffer = new char[512]; @@ -588,6 +694,9 @@ public class VBAMacroReader implements Closeable { builder.append(buffer, 0, read); } String properties = builder.toString(); + //the module name map names should be in exactly the same order + //as the module names here. See 2.3.3 PROJECTwm Stream. + //At some point, we might want to enforce that. for (String line : properties.split("\r\n|\n\r")) { if (!line.startsWith("[")) { String[] tokens = line.split("="); @@ -595,22 +704,40 @@ public class VBAMacroReader implements Closeable { && tokens[1].startsWith("\"") && tokens[1].endsWith("\"")) { // Remove any double quotes tokens[1] = tokens[1].substring(1, tokens[1].length() - 1); - } - if ("Document".equals(tokens[0])) { + if ("Document".equals(tokens[0]) && tokens.length > 1) { String mn = tokens[1].substring(0, tokens[1].indexOf("/&H")); - ModuleImpl module = modules.get(mn); - module.moduleType = ModuleType.Document; - } else if ("Module".equals(tokens[0])) { - ModuleImpl module = modules.get(tokens[1]); - module.moduleType = ModuleType.Module; - } else if ("Class".equals(tokens[0])) { - ModuleImpl module = modules.get(tokens[1]); - module.moduleType = ModuleType.Class; + ModuleImpl module = getModule(mn, moduleNameMap, modules); + if (module != null) { + module.moduleType = ModuleType.Document; + } else { + LOGGER.log(POILogger.WARN, "couldn't find module with name: "+mn); + } + } else if ("Module".equals(tokens[0]) && tokens.length > 1) { + ModuleImpl module = getModule(tokens[1], moduleNameMap, modules); + if (module != null) { + module.moduleType = ModuleType.Module; + } else { + LOGGER.log(POILogger.WARN, "couldn't find module with name: "+tokens[1]); + } + } else if ("Class".equals(tokens[0]) && tokens.length > 1) { + ModuleImpl module = getModule(tokens[1], moduleNameMap, modules); + if (module != null) { + module.moduleType = ModuleType.Class; + } else { + LOGGER.log(POILogger.WARN, "couldn't find module with name: "+tokens[1]); + } } } } } + //can return null! + private ModuleImpl getModule(String moduleName, Map moduleNameMap, ModuleMap moduleMap) { + if (moduleNameMap.containsKey(moduleName)) { + return moduleMap.get(moduleNameMap.get(moduleName)); + } + return moduleMap.get(moduleName); + } private String readUnicodeString(RLEDecompressingInputStream in, int unicodeNameRecordLength) throws IOException { byte[] buffer = IOUtils.safelyAllocate(unicodeNameRecordLength, 20000); diff --git a/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java b/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java index b4885f1d2..673f82e64 100644 --- a/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java +++ b/src/testcases/org/apache/poi/poifs/macros/TestVBAMacroReader.java @@ -286,4 +286,18 @@ public class TestVBAMacroReader { assertContains(content, "Attribute VB_Customizable = True"); r.close(); } + + @Test + public void bug62624() throws IOException { + //macro comes from Common Crawl: HRLOXHGMGLFIJQQU27RIWXOARRHAAAAS + File f = POIDataSamples.getSpreadSheetInstance().getFile("62624.bin"); + VBAMacroReader r = new VBAMacroReader(f); + + Map macros = r.readMacroModules(); + assertEquals(13, macros.size()); + assertNotNull(macros.get("M\u00F3dulo1")); + assertContains(macros.get("M\u00F3dulo1").getContent(), "Calcula_tributos"); + assertEquals(Module.ModuleType.Module, macros.get("M\u00F3dulo1").geModuleType()); + r.close(); + } } diff --git a/test-data/spreadsheet/62624.bin b/test-data/spreadsheet/62624.bin new file mode 100644 index 0000000000000000000000000000000000000000..9af59522e56e77d897ef90d3406004eb508bf3f7 GIT binary patch literal 113152 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%0ApK$upJPH^X7 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 FzW|TSiu3>g literal 0 HcmV?d00001