diff options
-rw-r--r-- | program/include/main.inc | 4 | ||||
-rw-r--r-- | program/steps/mail/get.inc | 2 |
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\""); |