diff options
author | Andy Scherzinger <info@andy-scherzinger.de> | 2025-01-26 20:58:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-26 20:58:24 +0100 |
commit | b99054ce580492b02cb47f3e2a57dc493642edff (patch) | |
tree | e40ba29e61b92e5815b8f539447bd0a5a99592b7 | |
parent | 8981f32358c96bcb59d8306fe13d79d98dd2d693 (diff) | |
parent | 305e1bb26077bce671cf03bf7f1bdfe8fe0960ae (diff) | |
download | nextcloud-server-b99054ce580492b02cb47f3e2a57dc493642edff.tar.gz nextcloud-server-b99054ce580492b02cb47f3e2a57dc493642edff.zip |
Merge pull request #50447 from nextcloud/fix/share-label
fix: Ensure `label` is always a string
-rw-r--r-- | apps/files_sharing/lib/Controller/ShareAPIController.php | 5 | ||||
-rw-r--r-- | apps/sharebymail/lib/ShareByMailProvider.php | 2 | ||||
-rw-r--r-- | lib/private/Share20/Share.php | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index d2412dd78c2..e7b4a8d6bb8 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -740,7 +740,10 @@ class ShareAPIController extends OCSController { } // 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 0f3f5a75ddd..5e0637c1a3a 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -1008,7 +1008,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider $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']); $share->setReminderSent((bool)$data['reminder_sent']); diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php index c1c13c77fa4..466817efc9a 100644 --- a/lib/private/Share20/Share.php +++ b/lib/private/Share20/Share.php @@ -66,14 +66,13 @@ 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 bool $reminderSent = false; + private string $label = ''; private bool $noExpirationDate = false; public function __construct( |