From 0e726919cc06c680c46613fea8fb0506ea5478d6 Mon Sep 17 00:00:00 2001 From: Perfare Date: Wed, 24 Aug 2016 22:40:37 +0800 Subject: [PATCH] Fixed bug if the asset has no name --- Unity Studio/UnityStudioForm.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Unity Studio/UnityStudioForm.cs b/Unity Studio/UnityStudioForm.cs index 1f900a7..b036ef2 100644 --- a/Unity Studio/UnityStudioForm.cs +++ b/Unity Studio/UnityStudioForm.cs @@ -725,9 +725,11 @@ namespace Unity_Studio } case 114: //MonoBehaviour { + if (asset.Offset + 0x1c + 4 > asset.sourceFile.a_Stream.BaseStream.Length) + break; asset.sourceFile.a_Stream.Position = asset.Offset + 0x1c; var len = asset.sourceFile.a_Stream.ReadInt32(); - if (len > 0 && len < asset.Size) + if (len > 0 && len < asset.Size - 4 - 0x1c) { var bytes = asset.sourceFile.a_Stream.ReadBytes(len); asset.Text = Encoding.UTF8.GetString(bytes); @@ -742,9 +744,11 @@ namespace Unity_Studio case 115: //MonoScript case 213: //Sprite { + if (asset.Offset + 4 > asset.sourceFile.a_Stream.BaseStream.Length) + break; asset.sourceFile.a_Stream.Position = asset.Offset; var len = asset.sourceFile.a_Stream.ReadInt32(); - if (len > 0 && len < asset.Size) + if (len > 0 && len < asset.Size - 4) { var bytes = asset.sourceFile.a_Stream.ReadBytes(len); asset.Text = Encoding.UTF8.GetString(bytes);