You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2021/03/23 21:43:22 UTC

[tika] 01/03: TIKA-3335 -- handle bad xml more robustly when checking for encryption

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git

commit b1e86412b04d563d6f557d686602738957990c5d
Author: tallison <ta...@apache.org>
AuthorDate: Tue Mar 23 14:32:05 2021 -0400

    TIKA-3335 -- handle bad xml more robustly when checking for encryption
---
 .../org/apache/tika/parser/odf/OpenDocumentManifestHandler.java  | 8 ++++++++
 .../main/java/org/apache/tika/parser/odf/OpenDocumentParser.java | 9 ++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java
index 65dcaf5..ca9a9ec 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentManifestHandler.java
@@ -34,6 +34,14 @@ import org.apache.tika.sax.ContentHandlerDecorator;
  */
 class OpenDocumentManifestHandler extends ContentHandlerDecorator {
 
+    /**
+     *
+     * @param namespaceURI
+     * @param localName
+     * @param qName
+     * @param attrs
+     * @throws SAXException wrapping a {@link EncryptedDocumentException} if the file is encrypted
+     */
     @Override
     public void startElement(
             String namespaceURI, String localName, String qName,
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
index f609e89..babaac2 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
@@ -256,7 +256,14 @@ public class OpenDocumentParser extends AbstractParser {
             return;
         }
         if (entry.getName().contains("manifest.xml")) {
-            checkForEncryption(zip, context);
+            try {
+                checkForEncryption(zip, context);
+            } catch (SAXException e) {
+                if (e.getCause() != null && e.getCause() instanceof EncryptedDocumentException) {
+                    throw e;
+                }
+                //else, swallow for now
+            }
         }
         if (entry.getName().equals("mimetype")) {
             String type = IOUtils.toString(zip, UTF_8).trim();