diff options
author | Christoph Wurst <ChristophWurst@users.noreply.github.com> | 2021-04-26 11:56:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-26 11:56:26 +0200 |
commit | 8f3a0705d46c1c196521cdb33c75acf92ea05026 (patch) | |
tree | 6b1a1afa35e125bed293ce9cd4f25abd4a7f64ca | |
parent | bf9ed2d3cd9a50ad5320b3fb07cbeac7ee4241b6 (diff) | |
parent | fea5b4a8b9dc829aa8a53a208d60c30ed7096601 (diff) | |
download | nextcloud-server-8f3a0705d46c1c196521cdb33c75acf92ea05026.tar.gz nextcloud-server-8f3a0705d46c1c196521cdb33c75acf92ea05026.zip |
Merge pull request #26755 from yan12125/bugfix/yan12125/caldav-truncation
Correctly truncate multibyte strings to fit into the database
-rw-r--r-- | apps/dav/lib/CalDAV/CalDavBackend.php | 6 | ||||
-rw-r--r-- | apps/dav/lib/CardDAV/CardDavBackend.php | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 15dabdbb14e..0a57ce17454 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -2678,7 +2678,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription if (!$this->db->supports4ByteText()) { $value = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $value); } - $value = mb_substr($value, 0, 254); + $value = mb_strcut($value, 0, 254); $query->setParameter('name', $property->name); $query->setParameter('parameter', null); @@ -2698,8 +2698,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } $query->setParameter('name', $property->name); - $query->setParameter('parameter', mb_substr($key, 0, 254)); - $query->setParameter('value', mb_substr($value, 0, 254)); + $query->setParameter('parameter', mb_strcut($key, 0, 254)); + $query->setParameter('value', mb_strcut($value, 0, 254)); $query->executeUpdate(); } } diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 9246fc68ac9..fa7db3750ff 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -1271,7 +1271,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { } } $query->setParameter('name', $property->name); - $query->setParameter('value', mb_substr($property->getValue(), 0, 254)); + $query->setParameter('value', mb_strcut($property->getValue(), 0, 254)); $query->setParameter('preferred', $preferred); $query->execute(); } |