From d4f9b8286afa3787b5ac0240198667b2376a3521 Mon Sep 17 00:00:00 2001 From: natoponen <57988162+natoponen@users.noreply.github.com> Date: Tue, 8 Nov 2022 10:45:58 +0300 Subject: [PATCH] Appropriate length check in Notification.php There is an issue(bug) when using UTF-8 symbols in any method, which checks the length of string as `isset($id[64])`. You can set only 32 UTF-8 symbols because they are 2 byte, and this "array" check seems inapropriate in this case, as it throws unexpected exceptions. Signed-off-by: natoponen <57988162+natoponen@users.noreply.github.com> --- lib/private/Notification/Notification.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/private/Notification/Notification.php b/lib/private/Notification/Notification.php index 3e5cf1d69349a..add4029b61666 100644 --- a/lib/private/Notification/Notification.php +++ b/lib/private/Notification/Notification.php @@ -197,12 +197,12 @@ public function getDateTime(): \DateTime { * @since 8.2.0 - 9.0.0: Type of $id changed to string */ public function setObject(string $type, string $id): INotification { - if ($type === '' || isset($type[64])) { + if ($type === '' || mb_strlen($type) > 64) { throw new \InvalidArgumentException('The given object type is invalid'); } $this->objectType = $type; - if ($id === '' || isset($id[64])) { + if ($id === '' || mb_strlen($id) > 64) { throw new \InvalidArgumentException('The given object id is invalid'); } $this->objectId = $id;