Better disabling of compression types

This commit is contained in:
Caleb Gardner
2025-03-17 06:53:29 -05:00
parent 88315ee384
commit f242de2710
9 changed files with 61 additions and 139 deletions
+21 -3
View File
@@ -55,9 +55,27 @@ func NewReader(r io.ReaderAt) (rdr *Reader, err error) {
if !rdr.Superblock.ValidVersion() {
return nil, ErrorVersion
}
rdr.d, err = decompress.GetDecompressor(rdr.Superblock.CompType)
if err != nil {
return nil, err
switch rdr.Superblock.CompType {
case ZlibCompression:
rdr.d = decompress.Zlib{}
case LZMACompression:
rdr.d, err = decompress.NewLzma()
if err != nil {
return nil, err
}
case LZOCompression:
rdr.d, err = decompress.NewLzo()
if err != nil {
return nil, err
}
case XZCompression:
rdr.d = decompress.Xz{}
case LZ4Compression:
rdr.d = decompress.Lz4{}
case ZSTDCompression:
rdr.d = decompress.Zstd{}
default:
return nil, errors.New("invalid compression type. possible corrupted archive")
}
rdr.Root, err = rdr.directoryFromRef(rdr.Superblock.RootInodeRef, "")
if err != nil {