From bf0452585baf0f8a1d72095095bc06b132217dbb Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 03 Sep 2006 08:17:35 -0400
Subject: [PATCH] Fixed another XSS issue: #1483830
---
program/lib/Mail/mimeDecode.php | 13 ++++---------
1 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/program/lib/Mail/mimeDecode.php b/program/lib/Mail/mimeDecode.php
index 92827b7..963c860 100644
--- a/program/lib/Mail/mimeDecode.php
+++ b/program/lib/Mail/mimeDecode.php
@@ -62,7 +62,6 @@
* print_r($structure);
*
* TODO:
-* o Implement multipart/appledouble
* o UTF8: ???
> 4. We have also found a solution for decoding the UTF-8
@@ -284,6 +283,7 @@
break;
case 'multipart/parallel':
+ case 'multipart/appledouble': // Appledouble mail
case 'multipart/report': // RFC1892
case 'multipart/signed': // PGP
case 'multipart/digest':
@@ -294,8 +294,9 @@
$this->_error = 'No boundary found for ' . $content_type['value'] . ' part';
return false;
}
-
+
$default_ctype = (strtolower($content_type['value']) === 'multipart/digest') ? 'message/rfc822' : 'text/plain';
+
$parts = $this->_boundarySplit($body, $content_type['other']['boundary']);
for ($i = 0; $i < count($parts); $i++) {
list($part_header, $part_body) = $this->_splitBodyHeader($parts[$i]);
@@ -498,14 +499,8 @@
}
$tmp = explode('--' . $boundary, $input);
- $count = count($tmp);
- // when boundaries are set correctly we should have at least 3 parts;
- // if not, return the last one (tbr)
- if ($count<3)
- return array($tmp[$count-1]);
-
- for ($i = 1; $i < $count - 1; $i++) {
+ for ($i = 1; $i < count($tmp) - 1; $i++) {
$parts[] = $tmp[$i];
}
--
Gitblit v1.9.1