Skip to content

Commit 7a020b1

Browse files
authored
Merge pull request #36935 from nextcloud/fix/noid/imip-plugin-null-hardening
fix(caldav): harden null handling of iMip scheduling method
2 parents 289fadf + a35b960 commit 7a020b1

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

apps/dav/lib/CalDAV/Schedule/IMipPlugin.php

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,11 @@ public function schedule(Message $iTipMessage) {
209209
$senderName = $senderName->getValue() ?? null;
210210
}
211211

212-
if ($senderName === null || empty(trim($senderName))) {
212+
// Try to get the sender name from the current user id if available.
213+
if ($this->userId !== null && ($senderName === null || empty(trim($senderName)))) {
213214
$senderName = $this->userManager->getDisplayName($this->userId);
214215
}
216+
215217
$sender = substr($iTipMessage->sender, 7);
216218

217219
switch (strtolower($iTipMessage->method)) {
@@ -229,17 +231,26 @@ public function schedule(Message $iTipMessage) {
229231
break;
230232
}
231233

232-
233234
$data['attendee_name'] = ($recipientName ?: $recipient);
234235
$data['invitee_name'] = ($senderName ?: $sender);
235236

236237
$fromEMail = Util::getDefaultEmailAddress('invitations-noreply');
237238
$fromName = $this->imipService->getFrom($senderName, $this->defaults->getName());
238239

239240
$message = $this->mailer->createMessage()
240-
->setFrom([$fromEMail => $fromName])
241-
->setTo([$recipient => $recipientName])
242-
->setReplyTo([$sender => $senderName]);
241+
->setFrom([$fromEMail => $fromName]);
242+
243+
if ($recipientName !== null) {
244+
$message->setTo([$recipient => $recipientName]);
245+
} else {
246+
$message->setTo([$recipient]);
247+
}
248+
249+
if ($senderName !== null) {
250+
$message->setReplyTo([$sender => $senderName]);
251+
} else {
252+
$message->setReplyTo([$sender]);
253+
}
243254

244255
$template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data);
245256
$template->addHeader();

apps/dav/lib/CalDAV/Schedule/IMipService.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,15 @@ public function __construct(URLGenerator $urlGenerator,
7070
}
7171

7272
/**
73-
* @param string $senderName
74-
* @param $default
73+
* @param string|null $senderName
74+
* @param string $default
7575
* @return string
7676
*/
77-
public function getFrom(string $senderName, $default): string {
77+
public function getFrom(?string $senderName, string $default): string {
78+
if ($senderName === null) {
79+
return $default;
80+
}
81+
7882
return $this->l10n->t('%1$s via %2$s', [$senderName, $default]);
7983
}
8084

0 commit comments

Comments
 (0)