Fixed bug if the asset has no name

This commit is contained in:
Perfare 2016-08-24 22:40:37 +08:00
parent 6f5bf443ae
commit 0e726919cc

View File

@ -725,9 +725,11 @@ namespace Unity_Studio
} }
case 114: //MonoBehaviour case 114: //MonoBehaviour
{ {
if (asset.Offset + 0x1c + 4 > asset.sourceFile.a_Stream.BaseStream.Length)
break;
asset.sourceFile.a_Stream.Position = asset.Offset + 0x1c; asset.sourceFile.a_Stream.Position = asset.Offset + 0x1c;
var len = asset.sourceFile.a_Stream.ReadInt32(); 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); var bytes = asset.sourceFile.a_Stream.ReadBytes(len);
asset.Text = Encoding.UTF8.GetString(bytes); asset.Text = Encoding.UTF8.GetString(bytes);
@ -742,9 +744,11 @@ namespace Unity_Studio
case 115: //MonoScript case 115: //MonoScript
case 213: //Sprite case 213: //Sprite
{ {
if (asset.Offset + 4 > asset.sourceFile.a_Stream.BaseStream.Length)
break;
asset.sourceFile.a_Stream.Position = asset.Offset; asset.sourceFile.a_Stream.Position = asset.Offset;
var len = asset.sourceFile.a_Stream.ReadInt32(); 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); var bytes = asset.sourceFile.a_Stream.ReadBytes(len);
asset.Text = Encoding.UTF8.GetString(bytes); asset.Text = Encoding.UTF8.GetString(bytes);