From fa0152c21a7465013cd2a980d5cd3531ff7720d6 Mon Sep 17 00:00:00 2001
From: till <till@php.net>
Date: Sat, 02 Feb 2008 12:22:36 -0500
Subject: [PATCH] * fixed #1484738

---
 program/steps/settings/manage_folders.inc |    8 +++++++-
 program/include/rcube_imap.inc            |    6 +++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index 2d947a4..091048a 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1771,13 +1771,17 @@
           $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 b329e4c..7e06c9c 100644
--- a/program/steps/settings/manage_folders.inc
+++ b/program/steps/settings/manage_folders.inc
@@ -119,8 +119,14 @@
     {
     $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();
     }

--
Gitblit v1.9.1