summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-02-28 17:33:26 +0000
committeralecpl <alec@alec.pl>2011-02-28 17:33:26 +0000
commit29c54229cfbc104930e7743cecc212f53aed8a15 (patch)
tree46454dce5a10a1efaa213772553b16bca074f197
parentd7167e9eeb372127a857fbd87117dd52758f8597 (diff)
- Fix parsing links with non-printable characters inside (#1487805)
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/html2text.php6
-rw-r--r--program/steps/mail/func.inc3
3 files changed, 8 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 95c0558bb..a72d8d6ce 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix parsing links with non-printable characters inside (#1487805)
- Force IE to send referers (#1487806)
- Fixed de_CH Localization bugs (#1487773)
- Better display of vcard import results (#1485457)
diff --git a/program/lib/html2text.php b/program/lib/html2text.php
index 3b98e8df7..325a1c941 100644
--- a/program/lib/html2text.php
+++ b/program/lib/html2text.php
@@ -652,10 +652,12 @@ class html2text
case 'h':
return $this->_strtoupper("\n\n". $matches[2] ."\n\n");
case 'a':
- return $this->_build_link_list($matches[3], $matches[4]);
+ // Remove spaces in URL (#1487805)
+ $url = str_replace(' ', '', $matches[3]);
+ return $this->_build_link_list($url, $matches[4]);
}
}
-
+
/**
* Strtoupper multibyte wrapper function
*
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 9fa1e01fc..090317691 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1200,6 +1200,9 @@ function rcmail_alter_html_link($matches)
$attrib = parse_attrib_string($matches[2]);
$end = '>';
+ // Remove non-printable characters in URL (#1487805)
+ $attrib['href'] = preg_replace('/[\x00-\x1F]/', '', $attrib['href']);
+
if ($tag == 'link' && preg_match('/^https?:\/\//i', $attrib['href'])) {
$tempurl = 'tmp-' . md5($attrib['href']) . '.css';
$_SESSION['modcssurls'][$tempurl] = $attrib['href'];