From 0a0ca9ba9357eb9f975d322ccde432c17a716e15 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 9 Nov 2022 21:31:40 -0800 Subject: [PATCH] Be slightly safer on PE string table parsing --- BurnOutSharp.Builder/Extensions.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/BurnOutSharp.Builder/Extensions.cs b/BurnOutSharp.Builder/Extensions.cs index 4860c16a..ecadd89a 100644 --- a/BurnOutSharp.Builder/Extensions.cs +++ b/BurnOutSharp.Builder/Extensions.cs @@ -541,6 +541,12 @@ namespace BurnOutSharp.Builder else { string fullEncodedString = stringEncoding.GetString(entry.Data, offset, entry.Data.Length - offset); + if (stringLength > fullEncodedString.Length) + { + // TODO: Print to console or return an error? + stringLength = (ushort)fullEncodedString.Length; + } + string stringValue = fullEncodedString.Substring(0, stringLength); offset += stringEncoding.GetByteCount(stringValue); stringValue = stringValue.Replace("\n", "\\n").Replace("\r", "\\r");