aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Scherzinger <info@andy-scherzinger.de>2025-01-26 20:58:24 +0100
committerGitHub <noreply@github.com>2025-01-26 20:58:24 +0100
commitb99054ce580492b02cb47f3e2a57dc493642edff (patch)
treee40ba29e61b92e5815b8f539447bd0a5a99592b7
parent8981f32358c96bcb59d8306fe13d79d98dd2d693 (diff)
parent305e1bb26077bce671cf03bf7f1bdfe8fe0960ae (diff)
downloadnextcloud-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.php5
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php2
-rw-r--r--lib/private/Share20/Share.php3
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(