!584 修复issue #I4ZDQI

Merge pull request !584 from Husky/v5-dev
This commit is contained in:
Looly 2022-03-24 13:40:35 +00:00 committed by Gitee
commit 692846c983
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Filter;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import java.io.Closeable;
@ -142,8 +143,13 @@ public class ZipReader implements Closeable {
public File readTo(File outFile, Filter<ZipEntry> entryFilter) throws IORuntimeException {
read((zipEntry) -> {
if (null == entryFilter || entryFilter.accept(zipEntry)) {
//gitee issue #I4ZDQI
String path = zipEntry.getName();
if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
path = StrUtil.replace(zipEntry.getName(), "*", "_");
}
// FileUtil.file会检查slip漏洞漏洞说明见http://blog.nsfocus.net/zip-slip-2/
final File outItemFile = FileUtil.file(outFile, zipEntry.getName());
final File outItemFile = FileUtil.file(outFile, path);
if (zipEntry.isDirectory()) {
// 目录
//noinspection ResultOfMethodCallIgnored