This is an automated email from the ASF dual-hosted git repository. centic pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/poi.git
commit ab196a744119540e3953f14a5f851ad547e2f687 Author: Dominik Stadler <[email protected]> AuthorDate: Sat Jan 24 10:52:41 2026 +0100 Use log instead of assert when parsing emf-files Assert effectively hides problem in provided input files. --- .../poi/hemf/record/emfplus/HemfPlusHeader.java | 11 ++++++++++- ...ash-7b60e9fe792eaaf1bba8be90c2b62f057cfff142.emf | Bin 0 -> 21258 bytes test-data/spreadsheet/stress.xls | Bin 77824 -> 77824 bytes 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusHeader.java b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusHeader.java index 32215fd81e..e293860a59 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusHeader.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusHeader.java @@ -24,6 +24,8 @@ import java.io.IOException; import java.util.Map; import java.util.function.Supplier; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.poi.common.usermodel.GenericRecord; import org.apache.poi.hemf.draw.HemfGraphics; import org.apache.poi.hemf.draw.HemfGraphics.EmfRenderState; @@ -38,6 +40,8 @@ import org.apache.poi.util.LittleEndianInputStream; @Internal public class HemfPlusHeader implements HemfPlusRecord { + private static final Logger log = LogManager.getLogger(HemfPlusHeader.class); + /** * The GraphicsVersion enumeration defines versions of operating system graphics that are used to * create EMF+ metafiles. @@ -89,7 +93,12 @@ public class HemfPlusHeader implements HemfPlusRecord { this.flags = flags; version.init(leis); - assert(version.getMetafileSignature() == 0xDBC01 && version.getGraphicsVersion() != null); + if (version.getMetafileSignature() != 0xDBC01) { + log.atWarn().log("Had invalid meta-file signature, expected " + 0xDBC01 + ", had: " + version.getMetafileSignature()); + } + if (version.getGraphicsVersion() == null) { + log.atWarn().log("Encountered empty graphics version in emf file"); + } emfPlusFlags = leis.readUInt(); diff --git a/test-data/slideshow/crash-7b60e9fe792eaaf1bba8be90c2b62f057cfff142.emf b/test-data/slideshow/crash-7b60e9fe792eaaf1bba8be90c2b62f057cfff142.emf new file mode 100644 index 0000000000..32373a0409 Binary files /dev/null and b/test-data/slideshow/crash-7b60e9fe792eaaf1bba8be90c2b62f057cfff142.emf differ diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index 65a67126ea..18508cf972 100644 Binary files a/test-data/spreadsheet/stress.xls and b/test-data/spreadsheet/stress.xls differ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
