hle: Improve safety (#2778)
* timezone: Make timezone implementation safe * hle: Do not use TrimEnd to parse ASCII strings This adds an util that handle reading an ASCII string in a safe way. Previously it was possible to read malformed data that could cause various undefined behaviours in multiple services. * hid: Remove an useless unsafe modifier on keyboard update * Address gdkchan's comment * Address gdkchan's comment
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
using Ryujinx.HLE.Utilities;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
@ -30,10 +31,10 @@ namespace Ryujinx.HLE.FileSystem.Content
|
||||
|
||||
reader.ReadBytes(2); // Padding
|
||||
|
||||
PlatformString = Encoding.ASCII.GetString(reader.ReadBytes(0x20)).TrimEnd('\0');
|
||||
Hex = Encoding.ASCII.GetString(reader.ReadBytes(0x40)).TrimEnd('\0');
|
||||
VersionString = Encoding.ASCII.GetString(reader.ReadBytes(0x18)).TrimEnd('\0');
|
||||
VersionTitle = Encoding.ASCII.GetString(reader.ReadBytes(0x80)).TrimEnd('\0');
|
||||
PlatformString = StringUtils.ReadInlinedAsciiString(reader, 0x20);
|
||||
Hex = StringUtils.ReadInlinedAsciiString(reader, 0x40);
|
||||
VersionString = StringUtils.ReadInlinedAsciiString(reader, 0x18);
|
||||
VersionTitle = StringUtils.ReadInlinedAsciiString(reader, 0x80);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user