From cc6a3d4964b8dfc78dd40d62d8b4540821fb82bb Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 12 Mar 2023 16:01:07 +0800 Subject: [PATCH] fix bug --- .../java/cn/hutool/core/io/file/FileMagicNumber.java | 12 ++++++++---- .../java/cn/hutool/core/io/FileTypeUtilTest.java | 2 +- hutool-core/src/test/resources/1.txt | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 hutool-core/src/test/resources/1.txt diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java index 01c22a49a..bb7a1d02c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java @@ -394,6 +394,9 @@ public enum FileMagicNumber { WOFF("font/woff", "woff") { @Override public boolean match(final byte[] bytes) { + if(bytes.length < 8){ + return false; + } final boolean flag1 = Objects.equals(bytes[0], (byte) 0x77) && Objects.equals(bytes[1], (byte) 0x4f) && Objects.equals(bytes[2], (byte) 0x46) @@ -410,8 +413,7 @@ public enum FileMagicNumber { && Objects.equals(bytes[5], (byte) 0x72) && Objects.equals(bytes[6], (byte) 0x75) && Objects.equals(bytes[7], (byte) 0x65); - return bytes.length > 7 - && (flag1 && (flag2 || flag3 || flag4)); + return flag1 && (flag2 || flag3 || flag4); } }, /** @@ -420,6 +422,9 @@ public enum FileMagicNumber { WOFF2("font/woff2", "woff2") { @Override public boolean match(final byte[] bytes) { + if(bytes.length < 8){ + return false; + } final boolean flag1 = Objects.equals(bytes[0], (byte) 0x77) && Objects.equals(bytes[1], (byte) 0x4f) && Objects.equals(bytes[2], (byte) 0x46) @@ -436,8 +441,7 @@ public enum FileMagicNumber { && Objects.equals(bytes[5], (byte) 0x72) && Objects.equals(bytes[6], (byte) 0x75) && Objects.equals(bytes[7], (byte) 0x65); - return bytes.length > 7 - && (flag1 && (flag2 || flag3 || flag4)); + return flag1 && (flag2 || flag3 || flag4); } }, /** diff --git a/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java index e7d865f5f..3c6da37ff 100755 --- a/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/FileTypeUtilTest.java @@ -90,7 +90,7 @@ public class FileTypeUtilTest { @Test public void issueI6MACITest() { - final File file = FileUtil.file("text.txt"); + final File file = FileUtil.file("1.txt"); final String type = FileTypeUtil.getType(file); Assert.assertEquals("txt", type); } diff --git a/hutool-core/src/test/resources/1.txt b/hutool-core/src/test/resources/1.txt new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/hutool-core/src/test/resources/1.txt @@ -0,0 +1 @@ +1