From 7468ff001b6709b3baebf79687a8013e9b201bba Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Fri, 29 Mar 2024 13:56:15 +1000 Subject: [PATCH] fix write out of bounds in smlua text utils (#13) --- src/pc/lua/utils/smlua_text_utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pc/lua/utils/smlua_text_utils.c b/src/pc/lua/utils/smlua_text_utils.c index e81905a7e..e0ec18b55 100644 --- a/src/pc/lua/utils/smlua_text_utils.c +++ b/src/pc/lua/utils/smlua_text_utils.c @@ -35,7 +35,7 @@ void smlua_text_utils_init(void) { // Course/Star names for (s16 courseNum = 0; courseNum < COURSE_END; courseNum++) { - gReplacedActNameTable[courseNum] = malloc(sizeof(struct CourseName)); + gReplacedActNameTable[courseNum] = calloc(1, sizeof(struct CourseName)); struct CourseName* courseActNames = gReplacedActNameTable[courseNum]; convert_string_sm64_to_ascii(courseBuffer, segmented_to_virtual(courseNameTbl[courseNum])); snprintf(courseActNames->name, 50, "%s", courseBuffer); @@ -52,7 +52,7 @@ void smlua_text_utils_init(void) { snprintf(courseActNames->actName[actNum].orig, 50, "%s", actBuffer); courseActNames->actName[actNum].modIndex = -1; } - courseActNames->actName[MAX_ACTS_AND_100_COINS].modIndex = -1; + courseActNames->actName[MAX_ACTS_AND_100_COINS - 1].modIndex = -1; } } }