From 2976a46d069871eb34e0b894acf2f289f72fbf99 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 9 Apr 2024 15:15:09 +0100 Subject: [PATCH] Fix 54be756: Terminating NUL byte was not skipped in ReadString(). (#12462) --- src/newgrf.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index cbd44526b9..0446fbd736 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -274,7 +274,8 @@ public: char *string = reinterpret_cast(data); size_t string_length = ttd_strnlen(string, Remaining()); - Skip(string_length); + /* Skip past the terminating NUL byte if it is present, but not more than remaining. */ + Skip(std::min(string_length + 1, Remaining())); return std::string_view(string, string_length); }