From a0e0ccac1b812334d986f524357e1c8b3dcc48e5 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 13 Apr 2026 08:49:50 +0300 Subject: p2: guard streak allocation size overflow --- src/c/fastforge_logic.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/c') diff --git a/src/c/fastforge_logic.c b/src/c/fastforge_logic.c index 8a66804..a21ae36 100644 --- a/src/c/fastforge_logic.c +++ b/src/c/fastforge_logic.c @@ -10,6 +10,7 @@ typedef time_t ff_sys_time_t; #include #include +#include time_t entry_duration_seconds(const FastEntry *entry) { @@ -128,6 +129,10 @@ void fastforge_streak_recompute(const FastEntry *entries, int count, time_t now, return; } + if ((size_t)count > SIZE_MAX / sizeof(time_t)) { + return; + } + size_t completion_capacity = (size_t)count; time_t *completion_days = malloc(completion_capacity * sizeof(*completion_days)); if (!completion_days) { -- cgit v1.2.3