From e16dba43c16a5716280a24c66fc812436463650c Mon Sep 17 00:00:00 2001 From: viqueen Date: Sat, 27 Apr 2019 03:09:10 +1000 Subject: [PATCH] [MDEV-651] - fail when detecting duplicate file names (cherry picked from commit 412e800cb93c9f739cfa29e4c0b0b55ad8a73e22) --- .../codehaus/plexus/archiver/AbstractUnArchiver.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java b/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java index 58e121bbd..eb8d35ca9 100644 --- a/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java +++ b/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java @@ -343,9 +343,17 @@ protected void extractFile( final File srcF, final File dir, final InputStream c try { - if ( !isOverwrite() && f.exists() && ( f.lastModified() >= entryDate.getTime() ) ) + if ( !isOverwrite() && f.exists() ) { - return; + final File entryFile = FileUtils.getFile( entryName ); + if ( !StringUtils.equals( canonicalDestPath, entryFile.getAbsolutePath() ) ) + { + throw new ArchiverException( "Duplicate files (" + canonicalDestPath + "," + entryFile.getAbsolutePath() + ")" ); + } + else if ( f.lastModified() >= entryDate.getTime() ) + { + return; + } } // create intermediary directories - sometimes zip don't add them