Fix issues with compressed NSO without a section (#548)

* Fix issues with compressed NSO without a section

Avoid trying to decompress something that doesn't exist

* don't use the lengths of the buffer directly
This commit is contained in:
Thomas Guillemard 2018-12-22 18:42:48 +01:00 committed by gdkchan
parent 0039bb6394
commit d8f2497f15

View file

@ -80,7 +80,7 @@ namespace Ryujinx.HLE.Loaders.Executables
Text = reader.ReadBytes(textSize); Text = reader.ReadBytes(textSize);
if (flags.HasFlag(NsoFlags.IsTextCompressed)) if (flags.HasFlag(NsoFlags.IsTextCompressed) && textSize != 0)
{ {
Text = Lz4.Decompress(Text, textDecSize); Text = Lz4.Decompress(Text, textDecSize);
} }
@ -90,7 +90,7 @@ namespace Ryujinx.HLE.Loaders.Executables
Ro = reader.ReadBytes(roSize); Ro = reader.ReadBytes(roSize);
if (flags.HasFlag(NsoFlags.IsRoCompressed)) if (flags.HasFlag(NsoFlags.IsRoCompressed) && roSize != 0)
{ {
Ro = Lz4.Decompress(Ro, roDecSize); Ro = Lz4.Decompress(Ro, roDecSize);
} }
@ -100,7 +100,7 @@ namespace Ryujinx.HLE.Loaders.Executables
Data = reader.ReadBytes(dataSize); Data = reader.ReadBytes(dataSize);
if (flags.HasFlag(NsoFlags.IsDataCompressed)) if (flags.HasFlag(NsoFlags.IsDataCompressed) && dataSize != 0)
{ {
Data = Lz4.Decompress(Data, dataDecSize); Data = Lz4.Decompress(Data, dataDecSize);
} }