From 9263f55a634cafc805307a138f3f2d54df1faa21 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 05 Aug 2013 03:14:44 -0400 Subject: [PATCH] Ignore Reply-To when replying to own message (#1489230) --- program/steps/mail/compose.inc | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 329f63e..c9d8c0b 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -170,6 +170,9 @@ $config_show_sig = $RCMAIL->config->get('show_sig', 1); if ($compose_mode == RCUBE_COMPOSE_EDIT || $compose_mode == RCUBE_COMPOSE_DRAFT) { // don't add signature in draft/edit mode, we'll also not remove the old-one + // but only on page display, later we should be able to change identity/sig (#1489229) + if ($config_show_sig == 1 || $config_show_sig == 2) + $OUTPUT->set_env('show_sig_later', true); } else if ($config_show_sig == 1) $OUTPUT->set_env('show_sig', true); @@ -204,7 +207,10 @@ if (!empty($MESSAGE->headers->charset)) $RCMAIL->storage->set_charset($MESSAGE->headers->charset); - if ($compose_mode == RCUBE_COMPOSE_REPLY) { + if (!$MESSAGE->headers) { + // error + } + else if ($compose_mode == RCUBE_COMPOSE_REPLY) { $COMPOSE['reply_uid'] = $msg_uid; $COMPOSE['reply_msgid'] = $MESSAGE->headers->messageID; $COMPOSE['references'] = trim($MESSAGE->headers->references . " " . $MESSAGE->headers->messageID); @@ -316,8 +322,8 @@ else if (!empty($MESSAGE->headers->from)) $fvalue = $MESSAGE->headers->from; - // Reply to message sent by yourself (#1487074) - if (!empty($ident) && $fvalue == $ident['ident']) { + // Reply to message sent by yourself (#1487074, #1489230) + if (!empty($ident) && in_array($ident['ident'], array($fvalue, $MESSAGE->headers->from))) { $fvalue = $MESSAGE->headers->to; } } @@ -523,7 +529,7 @@ } } - $out = $select_from->show($MESSAGE->compose['from']); + $out = $select_from->show((int)$MESSAGE->compose['from']); // add signatures to client $OUTPUT->set_env('signatures', $a_signatures); @@ -997,10 +1003,19 @@ && count($MESSAGE->mime_parts) > 0) { $cid_map = rcmail_write_compose_attachments($MESSAGE, $bodyIsHtml); + } + + // clean up HTML tags - XSS prevention (#1489251) + if ($bodyIsHtml) { + $body = rcmail_wash_html($body, array('safe' => 1), $cid_map); + + // remove comments (produced by washtml) + $body = preg_replace('/<!--[^>]+-->/', '', $body); // replace cid with href in inline images links - if ($cid_map) + if (!empty($cid_map)) { $body = str_replace(array_keys($cid_map), array_values($cid_map), $body); + } } return $body; @@ -1447,17 +1462,17 @@ rcube_label('normal'), rcube_label('high'), rcube_label('highest')), - array(5, 4, 0, 2, 1)); + array('5', '4', '0', '2', '1')); if (isset($_POST['_priority'])) $sel = $_POST['_priority']; - else if (intval($MESSAGE->headers->priority) != 3) - $sel = intval($MESSAGE->headers->priority); + else if (isset($MESSAGE->headers->priority) && intval($MESSAGE->headers->priority) != 3) + $sel = $MESSAGE->headers->priority; else $sel = 0; $out = $form_start ? "$form_start\n" : ''; - $out .= $selector->show($sel); + $out .= $selector->show(strval($sel)); $out .= $form_end ? "\n$form_end" : ''; return $out; -- Gitblit v1.9.1