diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index 2d947a4fd..091048a15 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -1771,13 +1771,17 @@ class rcube_imap $deleted = TRUE; foreach ($all_mboxes as $c_mbox) - if (preg_match('/^'.preg_quote($mailbox.$this->delimiter).'/', $c_mbox)) + { + $regex = preg_quote($mailbox . $this->delimiter, '/'); + $regex = '/^' . $regex . '/'; + if (preg_match($regex, $c_mbox)) { iil_C_UnSubscribe($this->conn, $c_mbox); $result = iil_C_DeleteFolder($this->conn, $c_mbox); if ($result>=0) $deleted = TRUE; } + } } // clear mailboxlist cache diff --git a/program/steps/settings/manage_folders.inc b/program/steps/settings/manage_folders.inc index b329e4c64..7e06c9c8f 100644 --- a/program/steps/settings/manage_folders.inc +++ b/program/steps/settings/manage_folders.inc @@ -119,8 +119,14 @@ else if ($_action=='delete-folder') { $OUTPUT->command('remove_folder_row', get_input_value('_mboxes', RCUBE_INPUT_POST)); foreach ($a_mboxes as $mbox) - if (preg_match('/^'.preg_quote(get_input_value('_mboxes', RCUBE_INPUT_POST).$delimiter).'/', $mbox)) + { + $regex = get_input_value('_mboxes', RCUBE_INPUT_POST) . $delimiter; + $regex = preg_quote($regex, '/'); + if (preg_match('/^'. $regex .'/', $mbox)) + { $OUTPUT->command('remove_folder_row', $mbox); + } + } $OUTPUT->show_message('folderdeleted', 'confirmation'); $OUTPUT->send(); }