From 8a243f739196ed867f4436fe02270774f76100ea Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 8 Mar 2025 14:12:02 +0100 Subject: [PATCH] Fix: [Script] Getting expiry date could cause out of bounds access --- src/script/api/script_subsidy.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/script/api/script_subsidy.cpp b/src/script/api/script_subsidy.cpp index 13b6734d05..586c436655 100644 --- a/src/script/api/script_subsidy.cpp +++ b/src/script/api/script_subsidy.cpp @@ -60,8 +60,8 @@ TimerGameEconomy::YearMonthDay ymd = TimerGameEconomy::ConvertDateToYMD(TimerGameEconomy::date); ymd.day = 1; auto m = ymd.month + ::Subsidy::Get(subsidy_id)->remaining; - ymd.month = (m - 1) % 12 + 1; - ymd.year += TimerGameEconomy::Year{(m - 1) / 12}; + ymd.month = m % 12; + ymd.year += TimerGameEconomy::Year{m / 12}; return (ScriptDate::Date)TimerGameEconomy::ConvertYMDToDate(ymd.year, ymd.month, ymd.day).base(); }