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]

Reply via email to