mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
commit
692846c983
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user