Page MenuHomePhabricator

D16748.id40338.diff
No OneTemporary

D16748.id40338.diff

diff --git a/src/parser/calendar/data/PhutilCalendarRecurrenceRule.php b/src/parser/calendar/data/PhutilCalendarRecurrenceRule.php
--- a/src/parser/calendar/data/PhutilCalendarRecurrenceRule.php
+++ b/src/parser/calendar/data/PhutilCalendarRecurrenceRule.php
@@ -267,7 +267,26 @@
'BYSETPOS',
));
+ $int_values = array_fuse(
+ array(
+ 'COUNT',
+ 'INTERVAL',
+ ));
+
foreach ($dict as $key => $value) {
+ if (isset($int_values[$key])) {
+ // None of these values may be negative.
+ if (!preg_match('/^\d+\z/', $value)) {
+ throw new Exception(
+ pht(
+ 'Unexpected value "%s" in "%s" RULE property: expected an '.
+ 'integer.',
+ $value,
+ $key));
+ }
+ $dict[$key] = (int)$value;
+ }
+
if (isset($int_lists[$key])) {
foreach ($value as $k => $v) {
if (!preg_match('/^-?\d+\z/', $v)) {

File Metadata

Mime Type
text/plain
Expires
Oct 12 2025, 1:19 PM (26 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8286417
Default Alt Text
D16748.id40338.diff (973 B)

Event Timeline