svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/standard/filters.c branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt
branches/PHP_5_4/ext/standard/filters.c branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt trunk/ext/standard/filters.c
trunk/ext/standard/tests/filters/bug50363.phpt

From: Date: Tue, 24 May 2011 23:49:26 +0000
Subject: svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/standard/filters.c branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt
branches/PHP_5_4/ext/standard/filters.c branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt trunk/ext/standard/filters.c
trunk/ext/standard/tests/filters/bug50363.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-65031@lists.php.net to get a copy of this message
felipe Tue, 24 May 2011 23:49:26 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=311407 Log: - Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter) Patch by: slusarz at curecanti dot org Bug: http://bugs.php.net/50363 (Verified) Invalid parsing in convert.quoted-printable-decode filter Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/filters.c A php/php-src/branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt U php/php-src/branches/PHP_5_4/ext/standard/filters.c A php/php-src/branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt U php/php-src/trunk/ext/standard/filters.c A php/php-src/trunk/ext/standard/tests/filters/bug50363.phpt Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2011-05-24 23:49:04 UTC (rev 311406) +++ php/php-src/branches/PHP_5_3/NEWS 2011-05-24 23:49:26 UTC (rev 311407) @@ -40,6 +40,8 @@ . Fixed bug #54866 (incorrect accounting for realpath_cache_size) (Dustin Ward) . Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size) (Pierre, os at irj dot ru) + . Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter). + (slusarz at curecanti dot org) - Apache2 Handler SAPI: . Fixed bug #54529 (SAPI crashes on apache_config.c:197). Modified: php/php-src/branches/PHP_5_3/ext/standard/filters.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/filters.c 2011-05-24 23:49:04 UTC (rev 311406) +++ php/php-src/branches/PHP_5_3/ext/standard/filters.c 2011-05-24 23:49:26 UTC (rev 311407) @@ -1050,20 +1050,16 @@ } } /* 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) { Added: php/php-src/branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/filters/bug50363.phpt 2011-05-24 23:49:26 UTC (rev 311407) @@ -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 Modified: php/php-src/branches/PHP_5_4/ext/standard/filters.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/standard/filters.c 2011-05-24 23:49:04 UTC (rev 311406) +++ php/php-src/branches/PHP_5_4/ext/standard/filters.c 2011-05-24 23:49:26 UTC (rev 311407) @@ -1050,20 +1050,16 @@ } } /* 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) { Added: php/php-src/branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/standard/tests/filters/bug50363.phpt 2011-05-24 23:49:26 UTC (rev 311407) @@ -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 Modified: php/php-src/trunk/ext/standard/filters.c =================================================================== --- php/php-src/trunk/ext/standard/filters.c 2011-05-24 23:49:04 UTC (rev 311406) +++ php/php-src/trunk/ext/standard/filters.c 2011-05-24 23:49:26 UTC (rev 311407) @@ -1050,20 +1050,16 @@ } } /* 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) { Added: php/php-src/trunk/ext/standard/tests/filters/bug50363.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/filters/bug50363.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/filters/bug50363.phpt 2011-05-24 23:49:26 UTC (rev 311407) @@ -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

« previous php.cvs (#65031) next »