diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index f6c106b9b0800..591ebb3f9645b 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -733,7 +733,10 @@ public function createShare( } // If we have a label, use it - if (!empty($label)) { + if ($label !== '') { + if (strlen($label) > 255) { + throw new OCSBadRequestException('Maximum label length is 255'); + } $share->setLabel($label); } diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index afd9e309999c6..3eb445908d9c8 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -1005,7 +1005,7 @@ protected function createShareObject(array $data): IShare { $share->setPassword($data['password']); $passwordExpirationTime = \DateTime::createFromFormat('Y-m-d H:i:s', $data['password_expiration_time'] ?? ''); $share->setPasswordExpirationTime($passwordExpirationTime !== false ? $passwordExpirationTime : null); - $share->setLabel($data['label']); + $share->setLabel($data['label'] ?? ''); $share->setSendPasswordByTalk((bool)$data['password_by_talk']); $share->setHideDownload((bool)$data['hide_download']); diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php index ac95e3ac0d4e8..35dcf6073f8f0 100644 --- a/lib/private/Share20/Share.php +++ b/lib/private/Share20/Share.php @@ -66,13 +66,12 @@ class Share implements IShare { private $shareTime; /** @var bool */ private $mailSend; - /** @var string */ - private $label = ''; /** @var ICacheEntry|null */ private $nodeCacheEntry; /** @var bool */ private $hideDownload = false; + private string $label = ''; private bool $noExpirationDate = false; public function __construct(