]> source.dussan.org Git - poi.git/commitdiff
another blind sha2 bug fix ...
authorAndreas Beeker <kiwiwings@apache.org>
Wed, 5 Nov 2014 23:33:33 +0000 (23:33 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Wed, 5 Nov 2014 23:33:33 +0000 (23:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1637005 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java

index 8be5797d621691fffcdf8ef935311b4a24ec6e6d..59d7f44d281ea2f1c28e47607d3c055f3b288c88 100644 (file)
@@ -241,6 +241,8 @@ public class SignatureInfo implements SignatureConfigurable {
                 }\r
                 \r
                 return valid;\r
+            } catch (ArrayIndexOutOfBoundsException e) {\r
+                throw new JvmBrokenException(e);\r
             } catch (Exception e) {\r
                 LOG.log(POILogger.ERROR, "error in marshalling and validating the signature", e);\r
                 return false;\r
@@ -538,7 +540,7 @@ public class SignatureInfo implements SignatureConfigurable {
             String description = signatureConfig.getSignatureDescription();\r
             return new DigestInfo(digestValue, signatureConfig.getDigestAlgo(), description);\r
         } catch (ArrayIndexOutOfBoundsException e) {\r
-            throw new EncryptedDocumentException("\"your JVM is just too broken\" - check https://bugzilla.redhat.com/show_bug.cgi?id=1155012 if this applies to the stacktrace ...", e);\r
+            throw new JvmBrokenException(e);\r
         }\r
     }\r
 \r
@@ -649,4 +651,10 @@ public class SignatureInfo implements SignatureConfigurable {
     private static <T> List<T> safe(List<T> other) {\r
         return other == null ? Collections.EMPTY_LIST : other;\r
     }\r
+    \r
+    private static class JvmBrokenException extends EncryptedDocumentException {\r
+        public JvmBrokenException(Throwable cause) {\r
+            super("\"your JVM is just too broken\" - check https://bugzilla.redhat.com/show_bug.cgi?id=1155012 if this applies to the stacktrace ...", cause);\r
+        }\r
+    }\r
 }\r