mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
- Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter)
Patch by: slusarz at curecanti dot org
This commit is contained in:
parent
b26fec954a
commit
b2780241d7
@ -1050,20 +1050,16 @@ static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *ins
|
||||
}
|
||||
} /* break is missing intentionally */
|
||||
|
||||
case 2: {
|
||||
unsigned int nbl;
|
||||
|
||||
case 2: {
|
||||
if (icnt <= 0) {
|
||||
goto out;
|
||||
}
|
||||
nbl = (*ps >= 'A' ? *ps - 0x37 : *ps - 0x30);
|
||||
|
||||
if (nbl > 15) {
|
||||
if (!isxdigit((int) *ps)) {
|
||||
err = PHP_CONV_ERR_INVALID_SEQ;
|
||||
goto out;
|
||||
}
|
||||
next_char = (next_char << 4) | nbl;
|
||||
|
||||
next_char = (next_char << 4) | (*ps >= 'A' ? *ps - 0x37 : *ps - 0x30);
|
||||
scan_stat++;
|
||||
ps++, icnt--;
|
||||
if (scan_stat != 3) {
|
||||
|
17
ext/standard/tests/filters/bug50363.phpt
Normal file
17
ext/standard/tests/filters/bug50363.phpt
Normal file
@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug #50363 (Invalid parsing in convert.quoted-printable-decode filter)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$foo = "Sauvegarder=C3=A9ussi(e) n=C3=A3o N=C3=83O\n";
|
||||
$foo .= "Sauvegarder=c3=a9ussi(e) n=c3=a3o N=c3=83O\n"; // Does not work!
|
||||
$b = fopen('php://temp', 'w+');
|
||||
stream_filter_append($b, 'convert.quoted-printable-decode', STREAM_FILTER_WRITE);
|
||||
fwrite($b, $foo);
|
||||
rewind($b);
|
||||
fpassthru($b);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Sauvegarderéussi(e) não NÃO
|
||||
Sauvegarderéussi(e) não NÃO
|
Loading…
Reference in New Issue
Block a user