Add exception checking for gzip decompression

This commit is contained in:
VaDiM 2023-09-24 03:02:08 +03:00
parent 25c611fb9e
commit cb84c137e5
2 changed files with 16 additions and 7 deletions

View File

@ -133,7 +133,7 @@ namespace AssetStudio
private void LoadFile(FileReader reader) private void LoadFile(FileReader reader)
{ {
switch (reader.FileType) switch (reader?.FileType)
{ {
case FileType.AssetsFile: case FileType.AssetsFile:
LoadAssetsFile(reader); LoadAssetsFile(reader);

View File

@ -53,15 +53,24 @@ namespace AssetStudio
public static FileReader DecompressGZip(FileReader reader) public static FileReader DecompressGZip(FileReader reader)
{ {
using (reader) try
{ {
var stream = new MemoryStream(); using (reader)
using (var gs = new GZipStream(reader.BaseStream, CompressionMode.Decompress))
{ {
gs.CopyTo(stream); var stream = new MemoryStream();
using (var gs = new GZipStream(reader.BaseStream, CompressionMode.Decompress))
{
gs.CopyTo(stream);
}
stream.Position = 0;
return new FileReader(reader.FullPath, stream);
} }
stream.Position = 0; }
return new FileReader(reader.FullPath, stream); catch (System.Exception e)
{
Logger.Warning($"Error while decompressing gzip file {reader.FullPath}\r\n{e}");
reader.Dispose();
return null;
} }
} }