MFH: fixed bug #53377 (imap_mime_header_decode() doesn't ignore \t during long

MIME header unfolding).
This commit is contained in:
Adam Harvey 2010-12-13 08:38:01 +00:00
parent e87fbccfd8
commit 75a9b76a3e
3 changed files with 43 additions and 1 deletions

4
NEWS
View File

@ -16,6 +16,10 @@
(Ilia)
. Fixed bug #47435 (FILTER_FLAG_NO_RES_RANGE don't work with ipv6).
(Ilia, valli at icsurselva dot ch)
- IMAP extension:
. Fixed bug #53377 (imap_mime_header_decode() doesn't ignore \t during long
MIME header unfolding). (Adam)
- Intl extension:
. Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).

View File

@ -4243,7 +4243,7 @@ PHP_FUNCTION(imap_mime_header_decode)
}
offset = end_token+2;
for (i = 0; (string[offset + i] == ' ') || (string[offset + i] == 0x0a) || (string[offset + i] == 0x0d); i++);
for (i = 0; (string[offset + i] == ' ') || (string[offset + i] == 0x0a) || (string[offset + i] == 0x0d) || (string[offset + i] == '\t'); i++);
if ((string[offset + i] == '=') && (string[offset + i + 1] == '?') && (offset + i < end)) {
offset += i;
}

View File

@ -0,0 +1,38 @@
--TEST--
Bug #53377 (imap_mime_header_decode() doesn't ignore \t during long MIME header unfolding)
--SKIPIF--
<?php
if (!extension_loaded("imap")) {
die("skip imap extension not available");
}
?>
--FILE--
<?php
$s = "=?UTF-8?Q?=E2=82=AC?=";
$header = "$s\n $s\n\t$s";
var_dump(imap_mime_header_decode($header));
--EXPECT--
array(3) {
[0]=>
object(stdClass)#1 (2) {
["charset"]=>
string(5) "UTF-8"
["text"]=>
string(3) "€"
}
[1]=>
object(stdClass)#2 (2) {
["charset"]=>
string(5) "UTF-8"
["text"]=>
string(3) "€"
}
[2]=>
object(stdClass)#3 (2) {
["charset"]=>
string(5) "UTF-8"
["text"]=>
string(3) "€"
}
}