diff options
author | Chih-Hsuan Yen <yan12125@gmail.com> | 2021-04-26 16:05:50 +0800 |
---|---|---|
committer | Chih-Hsuan Yen <yan12125@gmail.com> | 2021-04-26 16:54:50 +0800 |
commit | fea5b4a8b9dc829aa8a53a208d60c30ed7096601 (patch) | |
tree | 6b1a1afa35e125bed293ce9cd4f25abd4a7f64ca | |
parent | bf9ed2d3cd9a50ad5320b3fb07cbeac7ee4241b6 (diff) | |
download | nextcloud-server-fea5b4a8b9dc829aa8a53a208d60c30ed7096601.tar.gz nextcloud-server-fea5b4a8b9dc829aa8a53a208d60c30ed7096601.zip |
Correctly truncate multibyte strings to fit into the database
Closes: #26174
Signed-off-by: Chih-Hsuan Yen <yan12125@gmail.com>
-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(); } |