Validate slash command time minutes

* fix: reject hour > 23 in 'today/tomorrow' reminder time parsing

* fix: reject minute > 59 in reminder time parsing
This commit is contained in:
Afonso Coutinho
2026-06-01 21:50:19 +01:00
committed by GitHub
parent d885c70462
commit 5da662441c

View File

@@ -1464,6 +1464,7 @@ function _parseTimeSpec(input) {
const mer = (m[4] || '').toLowerCase();
if (mer === 'pm' && hh < 12) hh += 12;
if (mer === 'am' && hh === 12) hh = 0;
if (hh > 23 || mm > 59) return null;
d.setHours(hh, mm, 0, 0);
return { date: d, rest: m[5].trim() };
}
@@ -1477,9 +1478,9 @@ function _parseTimeSpec(input) {
const mer = (m[3] || '').toLowerCase();
if (mer === 'pm' && hh < 12) hh += 12;
if (mer === 'am' && hh === 12) hh = 0;
// Require an hour <= 23 and either a minute field or am/pm to avoid
// eating plain numbers like "3 apples".
if (hh > 23) return null;
// Require a valid hour/minute and either a minute field or am/pm to
// avoid eating plain numbers like "3 apples".
if (hh > 23 || mm > 59) return null;
if (m[2] == null && !mer) return null;
d.setHours(hh, mm, 0, 0);
if (d.getTime() <= now.getTime()) d.setDate(d.getDate() + 1);