From c7d72c0cdb71c29ff16097ca61c4d2312953ab91 Mon Sep 17 00:00:00 2001 From: David Racine Date: Thu, 30 Jul 2026 10:11:48 -0400 Subject: Fix startup crash from over-long "Speak Hylian" stat name (#6995) itemTimestampDisplayName rows are char[24], sized for the 23-char column the table uses. #6978 corrected "SpeakHylian:" to "Speak Hylian:" but kept the original padding, making the string 24 chars + NUL = 25 bytes. That overflows the buffer, so the strcpy in SetupDisplayNames aborts (__strcpy_chk) at GUI init on any _FORTIFY_SOURCE build, crashing before the main menu. Drop one trailing space to restore the 23-char column. Co-authored-by: Claude Opus 4.8 --- soh/soh/Enhancements/gameplaystats.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/gameplaystats.cpp b/soh/soh/Enhancements/gameplaystats.cpp index 5bd511749..2a647dcef 100644 --- a/soh/soh/Enhancements/gameplaystats.cpp +++ b/soh/soh/Enhancements/gameplaystats.cpp @@ -897,7 +897,7 @@ void SetupDisplayNames() { strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_DEKU], "Speak Deku: "); strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_GERUDO], "Speak Gerudo: "); strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_GORON], "Speak Goron: "); - strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_HYLIAN], "Speak Hylian: "); + strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_HYLIAN], "Speak Hylian: "); strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_KOKIRI], "Speak Kokiri: "); strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_SPEAK_ZORA], "Speak Zora: "); strcpy(itemTimestampDisplayName[TIMESTAMP_FOUND_DMC_BEAN_SOUL], "DMC Bean Soul: "); -- cgit v1.2.3