From 08175cac4c797ee965181b32192e19b17dc370e3 Mon Sep 17 00:00:00 2001 From: mikemirzayanov Date: Wed, 6 Aug 2025 22:10:57 +0300 Subject: [PATCH] Fix --- .../java/com/codeforces/commons/compress/ZipUtil.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/src/main/java/com/codeforces/commons/compress/ZipUtil.java b/code/src/main/java/com/codeforces/commons/compress/ZipUtil.java index ae5697d..b562a64 100644 --- a/code/src/main/java/com/codeforces/commons/compress/ZipUtil.java +++ b/code/src/main/java/com/codeforces/commons/compress/ZipUtil.java @@ -377,7 +377,7 @@ public static void unzip(File zipArchive, File destinationDirectory, @Nullable F } File file = new File(destinationDirectory, fileHeader.getFileName()).getCanonicalFile(); - if (!file.toPath().normalize().startsWith(destinationDirectory.toPath().normalize())) { + if (!file.getAbsolutePath().startsWith(destinationDirectory.getCanonicalPath())) { throw new IOException("ZIP entry tries to escape destination directory: " + fileHeader.getFileName()); } @@ -392,12 +392,8 @@ public static void unzip(File zipArchive, File destinationDirectory, @Nullable F if (maxSize <= MAX_ZIP_ENTRY_SIZE) { File parentDir = file.getParentFile(); - - try { - Files.createDirectories(parentDir.toPath()); - } catch (Exception e) { - throw new IOException("Failed to create parent directory: '" - + parentDir.getAbsolutePath() + "'.", e); + if (!parentDir.exists() && !parentDir.mkdirs()) { + throw new IOException("Failed to create parent directory: " + parentDir.getAbsolutePath()); } Files.deleteIfExists(file.toPath());