aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/vobject/lib
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/vobject/lib')
-rw-r--r--vendor/sabre/vobject/lib/Cli.php2
-rw-r--r--vendor/sabre/vobject/lib/Component/VCalendar.php2
-rw-r--r--vendor/sabre/vobject/lib/ITip/Broker.php2
-rw-r--r--vendor/sabre/vobject/lib/Parser/MimeDir.php5
-rw-r--r--vendor/sabre/vobject/lib/Recur/RRuleIterator.php15
-rw-r--r--vendor/sabre/vobject/lib/Version.php2
6 files changed, 22 insertions, 6 deletions
diff --git a/vendor/sabre/vobject/lib/Cli.php b/vendor/sabre/vobject/lib/Cli.php
index 70b5e8d6e..8350719a4 100644
--- a/vendor/sabre/vobject/lib/Cli.php
+++ b/vendor/sabre/vobject/lib/Cli.php
@@ -289,7 +289,7 @@ class Cli
$this->log($this->colorize('green', ' validate').' source_file Validates a file for correctness.');
$this->log($this->colorize('green', ' repair').' source_file [output_file] Repairs a file.');
$this->log($this->colorize('green', ' convert').' source_file [output_file] Converts a file.');
- $this->log($this->colorize('green', ' color').' source_file Colorize a file, useful for debbugging.');
+ $this->log($this->colorize('green', ' color').' source_file Colorize a file, useful for debugging.');
$this->log(
<<<HELP
diff --git a/vendor/sabre/vobject/lib/Component/VCalendar.php b/vendor/sabre/vobject/lib/Component/VCalendar.php
index 4687a092b..e21ae077a 100644
--- a/vendor/sabre/vobject/lib/Component/VCalendar.php
+++ b/vendor/sabre/vobject/lib/Component/VCalendar.php
@@ -336,7 +336,7 @@ class VCalendar extends VObject\Document
foreach ($recurringEvents as $events) {
try {
- $it = new EventIterator($events, $timeZone);
+ $it = new EventIterator($events, null, $timeZone);
} catch (NoInstancesException $e) {
// This event is recurring, but it doesn't have a single
// instance. We are skipping this event from the output
diff --git a/vendor/sabre/vobject/lib/ITip/Broker.php b/vendor/sabre/vobject/lib/ITip/Broker.php
index b1cfee367..4f37b75d0 100644
--- a/vendor/sabre/vobject/lib/ITip/Broker.php
+++ b/vendor/sabre/vobject/lib/ITip/Broker.php
@@ -522,6 +522,7 @@ class Broker
$event = $icalMsg->add('VEVENT', [
'UID' => $message->uid,
'SEQUENCE' => $message->sequence,
+ 'DTSTAMP' => gmdate('Ymd\\THis\\Z'),
]);
if (isset($calendar->VEVENT->SUMMARY)) {
$event->add('SUMMARY', $calendar->VEVENT->SUMMARY->getValue());
@@ -607,6 +608,7 @@ class Broker
}
}
+ $currentEvent->DTSTAMP = gmdate('Ymd\\THis\\Z');
$icalMsg->add($currentEvent);
}
}
diff --git a/vendor/sabre/vobject/lib/Parser/MimeDir.php b/vendor/sabre/vobject/lib/Parser/MimeDir.php
index 10dcec89c..26a7101e5 100644
--- a/vendor/sabre/vobject/lib/Parser/MimeDir.php
+++ b/vendor/sabre/vobject/lib/Parser/MimeDir.php
@@ -195,6 +195,9 @@ class MimeDir extends Parser
{
// Start of a new component
if ('BEGIN:' === strtoupper(substr($line, 0, 6))) {
+ if (substr($line, 6) === $this->root->name) {
+ throw new ParseException('Invalid MimeDir file. Unexpected component: "'.$line.'" in document type '.$this->root->name);
+ }
$component = $this->root->createComponent(substr($line, 6), [], false);
while (true) {
@@ -655,7 +658,7 @@ class MimeDir extends Parser
// missing a whitespace. So if 'forgiving' is turned on, we will take
// those as well.
if ($this->options & self::OPTION_FORGIVING) {
- while ('=' === substr($value, -1)) {
+ while ('=' === substr($value, -1) && $this->lineBuffer) {
// Reading the line
$this->readLine();
// Grabbing the raw form
diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
index 554507f19..75342a2a8 100644
--- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
+++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
@@ -67,6 +67,9 @@ class RRuleIterator implements Iterator
*/
public function valid()
{
+ if (null === $this->currentDate) {
+ return false;
+ }
if (!is_null($this->count)) {
return $this->counter < $this->count;
}
@@ -338,7 +341,7 @@ class RRuleIterator implements Iterator
if ($this->byHour) {
if ('23' == $this->currentDate->format('G')) {
// to obey the interval rule
- $this->currentDate = $this->currentDate->modify('+'.$this->interval - 1 .' days');
+ $this->currentDate = $this->currentDate->modify('+'.($this->interval - 1).' days');
}
$this->currentDate = $this->currentDate->modify('+1 hours');
@@ -398,7 +401,7 @@ class RRuleIterator implements Iterator
// We need to roll over to the next week
if ($currentDay === $firstDay && (!$this->byHour || '0' == $currentHour)) {
- $this->currentDate = $this->currentDate->modify('+'.$this->interval - 1 .' weeks');
+ $this->currentDate = $this->currentDate->modify('+'.($this->interval - 1).' weeks');
// We need to go to the first day of this week, but only if we
// are not already on this first day of this week.
@@ -461,6 +464,14 @@ class RRuleIterator implements Iterator
// This goes to 0 because we need to start counting at the
// beginning.
$currentDayOfMonth = 0;
+
+ // To prevent running this forever (better: until we hit the max date of DateTimeImmutable) we simply
+ // stop at 9999-12-31. Looks like the year 10000 problem is not solved in php ....
+ if ($this->currentDate->getTimestamp() > 253402300799) {
+ $this->currentDate = null;
+
+ return;
+ }
}
$this->currentDate = $this->currentDate->setDate(
diff --git a/vendor/sabre/vobject/lib/Version.php b/vendor/sabre/vobject/lib/Version.php
index 257e66a79..b728f216d 100644
--- a/vendor/sabre/vobject/lib/Version.php
+++ b/vendor/sabre/vobject/lib/Version.php
@@ -14,5 +14,5 @@ class Version
/**
* Full version number.
*/
- const VERSION = '4.2.0';
+ const VERSION = '4.2.1';
}