From 4dfae96dcdfba93a8b03db2d0422766b20adf77d Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 05 Apr 2013 06:48:36 -0400
Subject: [PATCH] Fix copying messages to a folder with "empty" name e.g. "0", better error handling

---
 program/steps/mail/mark.inc     |   10 +++++-----
 program/steps/mail/copy.inc     |    8 ++++----
 program/steps/mail/move_del.inc |    2 ++
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc
index a72378b..8766574 100644
--- a/program/steps/mail/copy.inc
+++ b/program/steps/mail/copy.inc
@@ -24,10 +24,10 @@
   return;
 
 // move messages
-if (!empty($_POST['_uid']) && !empty($_POST['_target_mbox'])) {
-    $uids = get_input_value('_uid', RCUBE_INPUT_POST);
+if (!empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
+    $uids   = get_input_value('_uid', RCUBE_INPUT_POST);
     $target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true);
-    $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+    $mbox   = get_input_value('_mbox', RCUBE_INPUT_POST, true);
 
     $copied = $RCMAIL->storage->copy_message($uids, $target, $mbox);
 
@@ -47,7 +47,7 @@
 }
 // unknown action or missing query param
 else {
-    exit;
+    $OUTPUT->show_message('internalerror', 'error');
 }
 
 // send response
diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc
index c220fc5..dfc892e 100644
--- a/program/steps/mail/mark.inc
+++ b/program/steps/mail/mark.inc
@@ -113,7 +113,7 @@
       $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
 
       if ($threading) {
-	    $count = get_input_value('_count', RCUBE_INPUT_POST);
+        $count = get_input_value('_count', RCUBE_INPUT_POST);
       }
 
       // add new rows from next page (if any)
@@ -125,9 +125,9 @@
       }
     }
   }
-
-  $OUTPUT->send();
+}
+else {
+    $OUTPUT->show_message('internalerror', 'error');
 }
 
-exit;
-
+$OUTPUT->send();
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index 3fc6ac5..e21ba2c 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -74,6 +74,8 @@
 }
 // unknown action or missing query param
 else {
+    $OUTPUT->show_message('internalerror', 'error');
+    $OUTPUT->send();
     exit;
 }
 

--
Gitblit v1.9.1