From 1d1fdcbf8cd7cce93454eb0b64eaf76975ebdd17 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Tue, 08 Apr 2014 05:32:51 -0400
Subject: [PATCH] Fix splitting message identifiers into UID and folder values

---
 program/lib/Roundcube/rcube_imap.php    |    4 ++--
 program/steps/mail/func.inc             |    2 +-
 program/lib/Roundcube/rcube_message.php |    2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index 41430db..23cacd4 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -1709,7 +1709,7 @@
 
         // decode combined UID-folder identifier
         if (preg_match('/^\d+-[^,]+$/', $uid)) {
-            list($uid, $folder) = explode('-', $uid);
+            list($uid, $folder) = explode('-', $uid, 2);
         }
 
         // get cached headers
@@ -1745,7 +1745,7 @@
 
         // decode combined UID-folder identifier
         if (preg_match('/^\d+-[^,]+$/', $uid)) {
-            list($uid, $folder) = explode('-', $uid);
+            list($uid, $folder) = explode('-', $uid, 2);
         }
 
         // Check internal cache
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index ad94005..edfd339 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -76,7 +76,7 @@
     {
         // decode combined UID-folder identifier
         if (preg_match('/^\d+-[^,]+$/', $uid)) {
-            list($uid, $folder) = explode('-', $uid);
+            list($uid, $folder) = explode('-', $uid, 2);
         }
 
         $this->uid  = $uid;
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 58f529f..a541fca 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -70,7 +70,7 @@
 
 // remove mbox part from _uid
 if (($_uid  = get_input_value('_uid', RCUBE_INPUT_GPC)) && preg_match('/^\d+-[^,]+$/', $_uid)) {
-  list($_uid, $mbox) = explode('-', $_uid);
+  list($_uid, $mbox) = explode('-', $_uid, 2);
   if (isset($_GET['_uid']))  $_GET['_uid']  = $_uid;
   if (isset($_POST['_uid'])) $_POST['_uid'] = $_uid;
   $_REQUEST['_uid'] = $_uid;

--
Gitblit v1.9.1