From 5e5c991855a12b1bd536571c9f6bf2d7f474d891 Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Wed, 16 Mar 2016 21:05:37 +0000 Subject: [PATCH] Fix for Softmaker Office files, which set encryption settings invalidly git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1735298 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java index 6f0e9e4c49..3d77d92d2a 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java @@ -85,7 +85,12 @@ public class HSLFSlideShowEncrypted { PersistPtrHolder ptr = (PersistPtrHolder)r; Integer encOffset = ptr.getSlideLocationsLookup().get(userEditAtomWithEncryption.getEncryptSessionPersistIdRef()); - assert(encOffset != null); + if (encOffset == null) { + // encryption info doesn't exist anymore + // SoftMaker Freeoffice produces such invalid files - check for "SMNativeObjData" ole stream + dea = null; + return; + } r = recordMap.get(encOffset); if (r == null) { -- 2.39.5