Ensure read errors don't throw on wrapper creation

This commit is contained in:
Matt Nadareski
2024-11-28 21:58:49 -05:00
parent 884746a5a1
commit 26146554a3
33 changed files with 150 additions and 148 deletions

View File

@@ -69,13 +69,13 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var mediaKeyBlock = Deserializers.AACS.DeserializeStream(data);
if (mediaKeyBlock == null)
return null;
try
{
return new AACSMediaKeyBlock(mediaKeyBlock, data);
var mkb = Deserializers.AACS.DeserializeStream(data);
if (mkb == null)
return null;
return new AACSMediaKeyBlock(mkb, data);
}
catch
{

View File

@@ -69,12 +69,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var svm = Deserializers.BDPlus.DeserializeStream(data);
if (svm == null)
return null;
try
{
var svm = Deserializers.BDPlus.DeserializeStream(data);
if (svm == null)
return null;
return new BDPlusSVM(svm, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.BFPK.DeserializeStream(data);
if (archive == null)
return null;
try
{
var archive = Deserializers.BFPK.DeserializeStream(data);
if (archive == null)
return null;
return new BFPK(archive, data);
}
catch

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.BSP.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.BSP.DeserializeStream(data);
if (file == null)
return null;
return new BSP(file, data);
}
catch

View File

@@ -75,12 +75,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var binary = Deserializers.CFB.DeserializeStream(data);
if (binary == null)
return null;
try
{
var binary = Deserializers.CFB.DeserializeStream(data);
if (binary == null)
return null;
return new CFB(binary, data);
}
catch

View File

@@ -95,19 +95,19 @@ namespace SabreTools.Serialization.Wrappers
/// Create a CHD header from a Stream
/// </summary>
/// <param name="data">Stream representing the archive</param>
/// <returns>An CHD header on success, null on failure</returns>
/// <returns>A CHD header on success, null on failure</returns>
public static CHD? Create(Stream? data)
{
// If the data is invalid
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var header = Deserializers.CHD.DeserializeStream(data);
if (header == null)
return null;
try
{
var header = Deserializers.CHD.DeserializeStream(data);
if (header == null)
return null;
return new CHD(header, data);
}
catch

View File

@@ -60,13 +60,13 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.CIA.DeserializeStream(data);
if (archive == null)
return null;
try
{
return new CIA(archive, data);
var cia = Deserializers.CIA.DeserializeStream(data);
if (cia == null)
return null;
return new CIA(cia, data);
}
catch
{

View File

@@ -215,12 +215,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.GCF.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.GCF.DeserializeStream(data);
if (file == null)
return null;
return new GCF(file, data);
}
catch

View File

@@ -59,13 +59,13 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var ird = Deserializers.IRD.DeserializeStream(data);
if (ird == null)
return null;
try
{
return new IRD(ird, data);
var file = Deserializers.IRD.DeserializeStream(data);
if (file == null)
return null;
return new IRD(file, data);
}
catch
{

View File

@@ -119,12 +119,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var cabinet = Deserializers.InstallShieldCabinet.DeserializeStream(data);
if (cabinet == null)
return null;
try
{
var cabinet = Deserializers.InstallShieldCabinet.DeserializeStream(data);
if (cabinet == null)
return null;
return new InstallShieldCabinet(cabinet, data);
}
catch

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var executable = Deserializers.LinearExecutable.DeserializeStream(data);
if (executable == null)
return null;
try
{
var executable = Deserializers.LinearExecutable.DeserializeStream(data);
if (executable == null)
return null;
return new LinearExecutable(executable, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var executable = Deserializers.MSDOS.DeserializeStream(data);
if (executable == null)
return null;
try
{
var executable = Deserializers.MSDOS.DeserializeStream(data);
if (executable == null)
return null;
return new MSDOS(executable, data);
}
catch

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var cabinet = Deserializers.MicrosoftCabinet.DeserializeStream(data);
if (cabinet == null)
return null;
try
{
var cabinet = Deserializers.MicrosoftCabinet.DeserializeStream(data);
if (cabinet == null)
return null;
return new MicrosoftCabinet(cabinet, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.MoPaQ.DeserializeStream(data);
if (archive == null)
return null;
try
{
var archive = Deserializers.MoPaQ.DeserializeStream(data);
if (archive == null)
return null;
return new MoPaQ(archive, data);
}
catch

View File

@@ -25,7 +25,7 @@ namespace SabreTools.Serialization.Wrappers
/// ExeFS headers
/// </summary>
public ExeFSHeader?[] ExeFSHeaders => Model.ExeFSHeaders ?? [];
/// <summary>
/// Media unit size in bytes
/// </summary>
@@ -254,13 +254,13 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.N3DS.DeserializeStream(data);
if (archive == null)
return null;
try
{
return new N3DS(archive, data);
var cart = Deserializers.N3DS.DeserializeStream(data);
if (cart == null)
return null;
return new N3DS(cart, data);
}
catch
{

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.NCF.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.NCF.DeserializeStream(data);
if (file == null)
return null;
return new NCF(file, data);
}
catch

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var executable = Deserializers.NewExecutable.DeserializeStream(data);
if (executable == null)
return null;
try
{
var executable = Deserializers.NewExecutable.DeserializeStream(data);
if (executable == null)
return null;
return new NewExecutable(executable, data);
}
catch

View File

@@ -59,13 +59,13 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.Nitro.DeserializeStream(data);
if (archive == null)
return null;
try
{
return new Nitro(archive, data);
var cart = Deserializers.Nitro.DeserializeStream(data);
if (cart == null)
return null;
return new Nitro(cart, data);
}
catch
{

View File

@@ -67,12 +67,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.PAK.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.PAK.DeserializeStream(data);
if (file == null)
return null;
return new PAK(file, data);
}
catch

View File

@@ -72,12 +72,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.PFF.DeserializeStream(data);
if (archive == null)
return null;
try
{
var archive = Deserializers.PFF.DeserializeStream(data);
if (archive == null)
return null;
return new PFF(archive, data);
}
catch

View File

@@ -34,13 +34,13 @@ namespace SabreTools.Serialization.Wrappers
{
// All logic is handled by the base class
}
/// <summary>
/// Create a PIC disc information object from a byte array and offset
/// </summary>
/// <param name="data">Byte array representing the information</param>
/// <param name="offset">Offset within the array to parse</param>
/// <returns>A PIC disc information wrapper on success, null on failure</returns>
/// Create a PIC disc information object from a byte array and offset
/// </summary>
/// <param name="data">Byte array representing the information</param>
/// <param name="offset">Offset within the array to parse</param>
/// <returns>A PIC disc information wrapper on success, null on failure</returns>
public static PIC? Create(byte[]? data, int offset)
{
// If the data is invalid
@@ -67,13 +67,14 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var info = Deserializers.PIC.DeserializeStream(data);
if (info == null)
return null;
try
{
return new PIC(info, data);
var di = Deserializers.PIC.DeserializeStream(data);
if (di == null)
return null;
return new PIC(di, data);
}
catch
{

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.PKZIP.DeserializeStream(data);
if (archive == null)
return null;
try
{
var archive = Deserializers.PKZIP.DeserializeStream(data);
if (archive == null)
return null;
return new PKZIP(archive, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var audioFile = Deserializers.PlayJAudio.DeserializeStream(data);
if (audioFile == null)
return null;
try
{
var audioFile = Deserializers.PlayJAudio.DeserializeStream(data);
if (audioFile == null)
return null;
return new PlayJAudioFile(audioFile, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var playlist = Deserializers.PlayJPlaylist.DeserializeStream(data);
if (playlist == null)
return null;
try
{
var playlist = Deserializers.PlayJPlaylist.DeserializeStream(data);
if (playlist == null)
return null;
return new PlayJPlaylist(playlist, data);
}
catch

View File

@@ -806,12 +806,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var executable = Deserializers.PortableExecutable.DeserializeStream(data);
if (executable == null)
return null;
try
{
var executable = Deserializers.PortableExecutable.DeserializeStream(data);
if (executable == null)
return null;
return new PortableExecutable(executable, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var archive = Deserializers.Quantum.DeserializeStream(data);
if (archive == null)
return null;
try
{
var archive = Deserializers.Quantum.DeserializeStream(data);
if (archive == null)
return null;
return new Quantum(archive, data);
}
catch

View File

@@ -103,12 +103,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.SGA.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.SGA.DeserializeStream(data);
if (file == null)
return null;
return new SGA(file, data);
}
catch

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.VBSP.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.VBSP.DeserializeStream(data);
if (file == null)
return null;
return new VBSP(file, data);
}
catch

View File

@@ -130,12 +130,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.VPK.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.VPK.DeserializeStream(data);
if (file == null)
return null;
return new VPK(file, data);
}
catch

View File

@@ -59,12 +59,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.WAD3.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.WAD3.DeserializeStream(data);
if (file == null)
return null;
return new WAD3(file, data);
}
catch

View File

@@ -87,14 +87,15 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0)
return null;
var binary = Deserializers.XMID.DeserializeString(data);
if (binary == null)
return null;
try
{
var xmid = Deserializers.XMID.DeserializeString(data);
if (xmid == null)
return null;
var ms = new MemoryStream(Encoding.ASCII.GetBytes(data));
return new XMID(binary, ms);
return new XMID(xmid, ms);
}
catch
{

View File

@@ -60,12 +60,12 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0 || !data.CanSeek || !data.CanRead)
return null;
var file = Deserializers.XZP.DeserializeStream(data);
if (file == null)
return null;
try
{
var file = Deserializers.XZP.DeserializeStream(data);
if (file == null)
return null;
return new XZP(file, data);
}
catch

View File

@@ -102,14 +102,14 @@ namespace SabreTools.Serialization.Wrappers
if (data == null || data.Length == 0)
return null;
var binary = Deserializers.XeMID.DeserializeString(data);
if (binary == null)
return null;
try
{
var xemid = Deserializers.XeMID.DeserializeString(data);
if (xemid == null)
return null;
var ms = new MemoryStream(Encoding.ASCII.GetBytes(data));
return new XeMID(binary, ms);
return new XeMID(xemid, ms);
}
catch
{