summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/main.inc4
-rw-r--r--program/steps/mail/get.inc2
2 files changed, 4 insertions, 2 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index 4ed25afaf..43a354919 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -347,6 +347,8 @@ function rep_specialchars_output($str, $enctype='', $mode='', $newlines=TRUE)
}
$xml_rep_table['"'] = '"';
+ $js_rep_table['"'] = '\\"';
+ $js_rep_table["'"] = "\\'";
}
// encode for XML
@@ -359,7 +361,7 @@ function rep_specialchars_output($str, $enctype='', $mode='', $newlines=TRUE)
if ($charset!='UTF-8')
$str = rcube_charset_convert($str, RCMAIL_CHARSET,$charset);
- return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), addslashes(strtr($str, $js_rep_table)));
+ return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), strtr($str, $js_rep_table));
}
// no encoding given -> return original string
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index fc3ee83ea..2d51ffc46 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -90,7 +90,7 @@ else if ($pid = get_input_value('_part', RCUBE_INPUT_GET)) {
$filename = $part->filename ? $part->filename : ($MESSAGE->subject ? $MESSAGE->subject : 'roundcube') . '.'.$ctype_secondary;
$filename = abbreviate_string($part->filename, 55);
- $filename = $browser->ie ? rawurlencode($filename) : addslashes($filename);
+ $filename = $browser->ie ? rawurlencode($filename) : addcslashes($filename, '"');
$disposition = !empty($_GET['_download']) ? 'attachment' : 'inline';
header("Content-Disposition: $disposition; filename=\"$filename\"");