From d8f2497f155046402cd15c65eca0326faf3aefd6 Mon Sep 17 00:00:00 2001
From: Thomas Guillemard <thog@protonmail.com>
Date: Sat, 22 Dec 2018 18:42:48 +0100
Subject: [PATCH] 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
---
 Ryujinx.HLE/Loaders/Executables/NxStaticObject.cs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Ryujinx.HLE/Loaders/Executables/NxStaticObject.cs b/Ryujinx.HLE/Loaders/Executables/NxStaticObject.cs
index c0b2e94756..c35a8f1a80 100644
--- a/Ryujinx.HLE/Loaders/Executables/NxStaticObject.cs
+++ b/Ryujinx.HLE/Loaders/Executables/NxStaticObject.cs
@@ -80,7 +80,7 @@ namespace Ryujinx.HLE.Loaders.Executables
 
             Text = reader.ReadBytes(textSize);
 
-            if (flags.HasFlag(NsoFlags.IsTextCompressed))
+            if (flags.HasFlag(NsoFlags.IsTextCompressed) && textSize != 0)
             {
                 Text = Lz4.Decompress(Text, textDecSize);
             }
@@ -90,7 +90,7 @@ namespace Ryujinx.HLE.Loaders.Executables
 
             Ro = reader.ReadBytes(roSize);
 
-            if (flags.HasFlag(NsoFlags.IsRoCompressed))
+            if (flags.HasFlag(NsoFlags.IsRoCompressed) && roSize != 0)
             {
                 Ro = Lz4.Decompress(Ro, roDecSize);
             }
@@ -100,7 +100,7 @@ namespace Ryujinx.HLE.Loaders.Executables
 
             Data = reader.ReadBytes(dataSize);
 
-            if (flags.HasFlag(NsoFlags.IsDataCompressed))
+            if (flags.HasFlag(NsoFlags.IsDataCompressed) && dataSize != 0)
             {
                 Data = Lz4.Decompress(Data, dataDecSize);
             }