fix(archive): use writable permissions for extracted directories

Archives may contain directory entries with read-only permissions
(e.g., META-INF/ with mode 0555 in JARs). When extracted to temp
directories, these restricted permissions prevented writing files
into those directories, causing "permission denied" errors for
subsequent file entries like META-INF/MANIFEST.MF.

Always use 0755 for extracted directories since they are temporary
working directories owned by the extraction process.

Signed-off-by: Thomas Bechtold <thomasbechtold@jpberlin.de>
This commit is contained in:
Thomas Bechtold
2026-04-27 08:49:46 +02:00
parent 41a1998d45
commit 5e5760e132
2 changed files with 95 additions and 2 deletions
+2 -2
View File
@@ -113,7 +113,7 @@ func (z *ZipExtractor) Extract(ctx context.Context, path string, destDir string,
if err != nil {
return err
}
return os.MkdirAll(joinedPath, file.Mode())
return os.MkdirAll(joinedPath, 0o755)
}
if limits.MaxFileCount > 0 && result.FilesExtracted >= limits.MaxFileCount {
@@ -180,7 +180,7 @@ func (t *TarExtractor) Extract(ctx context.Context, path string, destDir string,
if err != nil {
return err
}
return os.MkdirAll(joinedPath, file.Mode())
return os.MkdirAll(joinedPath, 0o755)
}
if limits.MaxFileCount > 0 && result.FilesExtracted >= limits.MaxFileCount {