mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
MFH: fixed bug #53377 (imap_mime_header_decode() doesn't ignore \t during long
MIME header unfolding).
This commit is contained in:
parent
e87fbccfd8
commit
75a9b76a3e
4
NEWS
4
NEWS
@ -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).
|
||||
|
@ -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;
|
||||
}
|
||||
|
38
ext/imap/tests/bug53377.phpt
Normal file
38
ext/imap/tests/bug53377.phpt
Normal 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) "€"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user