Not support deb with LZMA algorithm

This commit is contained in:
ema
2025-06-05 14:46:19 +08:00
parent 576cb5814d
commit b31de49da1

View File

@@ -19,9 +19,8 @@ using PureSharpCompress.Archives;
using PureSharpCompress.Compressors; using PureSharpCompress.Compressors;
using PureSharpCompress.Compressors.BZip2; using PureSharpCompress.Compressors.BZip2;
using PureSharpCompress.Compressors.Deflate; using PureSharpCompress.Compressors.Deflate;
using PureSharpCompress.Compressors.Deflate64;
using PureSharpCompress.Compressors.LZMA;
using PureSharpCompress.Compressors.Xz; using PureSharpCompress.Compressors.Xz;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@@ -107,16 +106,13 @@ public class DebReader
private static ZipCompressionMethod GetCompressionMethodFromFileName(string fileName) private static ZipCompressionMethod GetCompressionMethodFromFileName(string fileName)
{ {
fileName = fileName.ToLowerInvariant(); fileName = fileName.ToLowerInvariant();
if (fileName.EndsWith(".tar.gz") || fileName.EndsWith(".tgz"))
return ZipCompressionMethod.Deflate; // Check the format from ".tar.*"
else if (fileName.EndsWith(".tar.xz")) if (fileName.EndsWith(".tar.gz")) return ZipCompressionMethod.Deflate;
return ZipCompressionMethod.Xz; else if (fileName.EndsWith(".tar.xz")) return ZipCompressionMethod.Xz;
else if (fileName.EndsWith(".tar.bz2")) else if (fileName.EndsWith(".tar.bz2")) return ZipCompressionMethod.BZip2;
return ZipCompressionMethod.BZip2; else if (fileName.EndsWith(".tar.lzma")) return ZipCompressionMethod.LZMA;
else if (fileName.EndsWith(".tar.lzma")) else if (fileName.EndsWith(".tar.zst")) return ZipCompressionMethod.ZStd;
return ZipCompressionMethod.LZMA;
else if (fileName.EndsWith(".tar.zst"))
return ZipCompressionMethod.ZStd;
return ZipCompressionMethod.None; return ZipCompressionMethod.None;
} }
@@ -135,16 +131,7 @@ public class DebReader
} }
case ZipCompressionMethod.LZMA: case ZipCompressionMethod.LZMA:
{ {
var reader = new BinaryReader(stream); throw new NotSupportedException("Plugin NOT support deb with LZMA algorithm");
reader.ReadUInt16(); //LZMA version
var props = new byte[reader.ReadUInt16()];
reader.Read(props, 0, props.Length);
return new LzmaStream(
props,
stream,
stream.Length - 4,
-1
);
} }
case ZipCompressionMethod.Xz: case ZipCompressionMethod.Xz:
{ {
@@ -152,8 +139,7 @@ public class DebReader
} }
case ZipCompressionMethod.ZStd: case ZipCompressionMethod.ZStd:
{ {
// Not supported for ZStd throw new NotSupportedException("Plugin NOT support deb with ZStd algorithm");
return default;
} }
} }
@@ -163,19 +149,10 @@ public class DebReader
private enum ZipCompressionMethod private enum ZipCompressionMethod
{ {
None = 0, None = 0,
Shrink = 1,
Reduce1 = 2,
Reduce2 = 3,
Reduce3 = 4,
Reduce4 = 5,
Explode = 6,
Deflate = 8, Deflate = 8,
Deflate64 = 9,
BZip2 = 12, BZip2 = 12,
LZMA = 14, LZMA = 14,
ZStd = 93, ZStd = 93,
Xz = 95, Xz = 95,
PPMd = 98,
WinzipAes = 0x63,
} }
} }