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();