From: Dominik Stadler Date: Sat, 2 Apr 2016 11:01:56 +0000 (+0000) Subject: Fix two more places where wrong/invalid files can lead to file-handle leaks currently X-Git-Tag: REL_3_15_BETA2~378 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=36356489366830a440dc8931b43e9ed1c407a35d;p=poi.git Fix two more places where wrong/invalid files can lead to file-handle leaks currently git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1737489 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java index 3eb9b6df6f..b1b11b512d 100644 --- a/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java +++ b/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java @@ -429,6 +429,7 @@ public abstract class OPCPackage implements RelationshipSource, Closeable { if (this.contentTypeManager == null) { logger.log(POILogger.WARN, "Unable to call close() on a package that hasn't been fully opened yet"); + revert(); return; } diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipHelper.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipHelper.java index 56536d2382..632d2af262 100644 --- a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipHelper.java +++ b/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipHelper.java @@ -247,8 +247,11 @@ public final class ZipHelper { // Peek at the first few bytes to sanity check FileInputStream input = new FileInputStream(file); - verifyZipHeader(input); - input.close(); + try { + verifyZipHeader(input); + } finally { + input.close(); + } // Open as a proper zip file return new ZipSecureFile(file);