From 6691756ea12676fb6013589351ecf6f0906ffd52 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 25 May 2018 12:29:36 +0200 Subject: [PATCH] Fix bug where unicode contact names could have been broken/emptied or caused DB errors (#6299) --- CHANGELOG | 1 + program/lib/Roundcube/rcube_addressbook.php | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 131202616..2f86a5bfb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -92,6 +92,7 @@ CHANGELOG Roundcube Webmail - Fix bug where some escape sequences in html styles could bypass security checks - Fix bug where some forbidden characters on Cyrus-IMAP were not prevented from use in folder names - Fix bug where only attachments with the same name would be ignored on zip download (#6301) +- Fix bug where unicode contact names could have been broken/emptied or caused DB errors (#6299) RELEASE 1.3.6 ------------- diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php index e7d431b74..8434239c6 100644 --- a/program/lib/Roundcube/rcube_addressbook.php +++ b/program/lib/Roundcube/rcube_addressbook.php @@ -509,7 +509,7 @@ abstract class rcube_addressbook // default display name composition according to vcard standard if (!$fn) { $fn = join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))); - $fn = trim(preg_replace('/\s+/', ' ', $fn)); + $fn = trim(preg_replace('/\s+/u', ' ', $fn)); } // use email address part for name @@ -560,7 +560,7 @@ abstract class rcube_addressbook } $fn = trim($fn, ', '); - $fn = preg_replace('/\s+/', ' ', $fn); + $fn = preg_replace('/\s+/u', ' ', $fn); // fallbacks... if ($fn === '') { @@ -637,8 +637,8 @@ abstract class rcube_addressbook } } - $result = preg_replace('/\s+/', ' ', $result); - $result = preg_replace('/\s*(<>|\(\)|\[\])/', '', $result); + $result = preg_replace('/\s+/u', ' ', $result); + $result = preg_replace('/\s*(<>|\(\)|\[\])/u', '', $result); $result = trim($result, '/ '); return $result;