summaryrefslogtreecommitdiff
path: root/program/steps/mail
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-09-16 17:53:35 +0000
committerthomascube <thomas@roundcube.net>2011-09-16 17:53:35 +0000
commit06dc9838e0327c9472cbd3f353b40317eba0ecef (patch)
tree5453f347243a0fdc72fe0e201af3faa7890d0be9 /program/steps/mail
parent612eeca739c00e6e0341c2f039b23cefff8d4945 (diff)
Fix session race conditions when composing new messages
Diffstat (limited to 'program/steps/mail')
-rw-r--r--program/steps/mail/attachments.inc2
-rw-r--r--program/steps/mail/compose.inc4
-rw-r--r--program/steps/mail/func.inc4
-rw-r--r--program/steps/mail/sendmail.inc2
4 files changed, 6 insertions, 6 deletions
diff --git a/program/steps/mail/attachments.inc b/program/steps/mail/attachments.inc
index 4674034a1..ffb164279 100644
--- a/program/steps/mail/attachments.inc
+++ b/program/steps/mail/attachments.inc
@@ -25,7 +25,7 @@ if (!empty($_GET['_progress'])) {
}
$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GPC);
-$_SESSION['compose'] = $_SESSION['compose_data'][$COMPOSE_ID];
+$_SESSION['compose'] = $_SESSION['compose_data_'.$COMPOSE_ID];
if (!$_SESSION['compose']) {
die("Invalid session var!");
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 7e8a26fc1..4307c36d0 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -29,7 +29,7 @@ $MESSAGE_FORM = NULL;
$MESSAGE = NULL;
$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GET);
-$_SESSION['compose'] = $_SESSION['compose_data'][$COMPOSE_ID];
+$_SESSION['compose'] = $_SESSION['compose_data_'.$COMPOSE_ID];
// Nothing below is called during message composition, only at "new/forward/reply/draft" initialization or
// if a compose-ID is given (i.e. when the compose step is opened in a new window/tab).
@@ -39,7 +39,7 @@ if (!is_array($_SESSION['compose']))
if ($COMPOSE_ID)
raise_error(array('code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Invalid session"), true, true);
+ 'message' => "Invalid compose ID"), true, true);
$_SESSION['compose'] = array(
'id' => uniqid(mt_rand()),
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 98040e99f..36b18ce48 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1430,12 +1430,12 @@ function rcmail_message_part_frame($attrib)
*/
function rcmail_compose_cleanup($id)
{
- if (!isset($_SESSION['compose_data'][$id]))
+ if (!isset($_SESSION['compose_data_'.$id]))
return;
$rcmail = rcmail::get_instance();
$rcmail->plugins->exec_hook('attachments_cleanup', array('group' => $id));
- unset($_SESSION['compose_data'][$id]);
+ $rcmail->session->remove('compose_data_'.$id);
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index f81c1529d..7850859f3 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -27,7 +27,7 @@ $OUTPUT->framed = TRUE;
$savedraft = !empty($_POST['_draft']) ? true : false;
$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GPC);
-$_SESSION['compose'] = $_SESSION['compose_data'][$COMPOSE_ID];
+$_SESSION['compose'] = $_SESSION['compose_data_'.$COMPOSE_ID];
/****** checks ********/