From 99c0772a590343e5b910b31dd0ff291e00cc5228 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 4 Apr 2022 11:09:30 +0200 Subject: Ignore directories --- vespajlib/src/main/java/com/yahoo/compress/ArchiveStreamReader.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'vespajlib/src/main/java/com') diff --git a/vespajlib/src/main/java/com/yahoo/compress/ArchiveStreamReader.java b/vespajlib/src/main/java/com/yahoo/compress/ArchiveStreamReader.java index 9f6bd5b1bb8..9b60518e7b6 100644 --- a/vespajlib/src/main/java/com/yahoo/compress/ArchiveStreamReader.java +++ b/vespajlib/src/main/java/com/yahoo/compress/ArchiveStreamReader.java @@ -56,6 +56,7 @@ public class ArchiveStreamReader implements AutoCloseable { while ((entry = archiveInputStream.getNextEntry()) != null) { Path path = Path.fromString(requireNormalized(entry.getName())); if (isSymlink(entry)) throw new IllegalArgumentException("Archive entry " + path + " is a symbolic link, which is disallowed"); + if (entry.isDirectory()) continue; if (!options.pathPredicate.test(path.toString())) continue; long size = 0; @@ -140,7 +141,7 @@ public class ArchiveStreamReader implements AutoCloseable { private static String requireNormalized(String name) { for (var part : name.split("/")) { - if (part.equals(".") || part.equals("..") || part.isEmpty()) { + if (part.isEmpty() || part.equals(".") || part.equals("..")) { throw new IllegalArgumentException("Unexpected non-normalized path found in zip content: '" + name + "'"); } } -- cgit v1.2.3