[
https://issues.apache.org/jira/browse/COMPRESS-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17489299#comment-17489299
]
Peter Lee commented on COMPRESS-603:
------------------------------------
Thanks [~mattsicker]
I can reproduce this like this:
{code:java}
@Test
public void testCompress603Tar() throws IOException, ArchiveException {
setupTarForCompress603();
try (TarFile f = new TarFile(archive)) {
new Expander().expand(f, resultDir);
}
}
private void setupTarForCompress603() throws IOException, ArchiveException {
archive = new File(dir, "test.tar");
final File dummy = new File(dir, "x");
try (OutputStream o = Files.newOutputStream(dummy.toPath())) {
o.write(new byte[14]);
}
try (ArchiveOutputStream aos = ArchiveStreamFactory.DEFAULT
.createArchiveOutputStream("tar",
Files.newOutputStream(archive.toPath()))) {
aos.putArchiveEntry(aos.createArchiveEntry(dir, "./"));
aos.closeArchiveEntry();
aos.putArchiveEntry(aos.createArchiveEntry(dir, "./a"));
aos.closeArchiveEntry();
aos.finish();
}
} {code}
IMO creating a tar containing an entry with name of "./" a edge case, but I
have to admit this is legal case - and GNU tar & bsdtar can successfully handle
this.
Will fix this soon.
> Expander does not support archives with archive entries beginning with ./
> -------------------------------------------------------------------------
>
> Key: COMPRESS-603
> URL: https://issues.apache.org/jira/browse/COMPRESS-603
> Project: Commons Compress
> Issue Type: Bug
> Components: Archivers
> Affects Versions: 1.21
> Reporter: Matt Sicker
> Priority: Major
> Attachments: test.tar.gz
>
>
> Suppose I create a tar file from a directory like so:
>
> {code:java}
> tar -cf foo.tar ./foo{code}
> When I try to extract the tar entries using the Expander class, that throws a
> java.io.IOException: Expanding ./ would create file outside of ...
> When I create the tar file without the leading ./, then Expander doesn't
> complain.
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)