bjori Wed, 07 Sep 2011 16:19:09 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=316373
Log: Fixed bug #55504 (Content-Type header is not parsed correctly on HTTP POST request Bug: https://bugs.php.net/55504 (Assigned) Content-Type header is not parsed correctly on HTTP POST request Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/main/rfc1867.c A php/php-src/branches/PHP_5_3/tests/basic/030.phpt A php/php-src/branches/PHP_5_3/tests/basic/031.phpt A php/php-src/branches/PHP_5_3/tests/basic/032.phpt U php/php-src/branches/PHP_5_4/main/rfc1867.c A php/php-src/branches/PHP_5_4/tests/basic/030.phpt A php/php-src/branches/PHP_5_4/tests/basic/031.phpt A php/php-src/branches/PHP_5_4/tests/basic/032.phpt U php/php-src/trunk/main/rfc1867.c A php/php-src/trunk/tests/basic/030.phpt A php/php-src/trunk/tests/basic/031.phpt A php/php-src/trunk/tests/basic/032.phpt
Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2011-09-07 16:18:53 UTC (rev 316372) +++ php/php-src/branches/PHP_5_3/NEWS 2011-09-07 16:19:09 UTC (rev 316373) @@ -10,6 +10,8 @@ (Arpad) . Fixed bug #55576: Cannot conditionally move uploaded file without race condition. (Gustavo) + . Fixed bug #55504 (Content-Type header is not parsed correctly on + HTTP POST request). (Hannes) - DateTime: . Fixed bug #48476 (cloning extended DateTime class without calling Modified: php/php-src/branches/PHP_5_3/main/rfc1867.c =================================================================== --- php/php-src/branches/PHP_5_3/main/rfc1867.c 2011-09-07 16:18:53 UTC (rev 316372) +++ php/php-src/branches/PHP_5_3/main/rfc1867.c 2011-09-07 16:19:09 UTC (rev 316373) @@ -816,7 +816,7 @@ } } else { /* search for the end of the boundary */ - boundary_end = strchr(boundary, ','); + boundary_end = strpbrk(boundary, ",;"); } if (boundary_end) { boundary_end[0] = '\0'; Added: php/php-src/branches/PHP_5_3/tests/basic/030.phpt =================================================================== --- php/php-src/branches/PHP_5_3/tests/basic/030.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/tests/basic/030.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} Added: php/php-src/branches/PHP_5_3/tests/basic/031.phpt =================================================================== --- php/php-src/branches/PHP_5_3/tests/basic/031.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/tests/basic/031.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,32 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv +Content-Disposition: form-data; name="data2" + +more data +--BVoyv +Content-Disposition: form-data; name="data3" + +even more data +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(3) { + ["data"]=> + string(3) "abc" + ["data2"]=> + string(9) "more data" + ["data3"]=> + string(14) "even more data" +} Added: php/php-src/branches/PHP_5_3/tests/basic/032.phpt =================================================================== --- php/php-src/branches/PHP_5_3/tests/basic/032.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/tests/basic/032.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#18792 (no form variables after multipart/form-data) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv, charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} Modified: php/php-src/branches/PHP_5_4/main/rfc1867.c =================================================================== --- php/php-src/branches/PHP_5_4/main/rfc1867.c 2011-09-07 16:18:53 UTC (rev 316372) +++ php/php-src/branches/PHP_5_4/main/rfc1867.c 2011-09-07 16:19:09 UTC (rev 316373) @@ -738,7 +738,7 @@ } } else { /* search for the end of the boundary */ - boundary_end = strchr(boundary, ','); + boundary_end = strpbrk(boundary, ",;"); } if (boundary_end) { boundary_end[0] = '\0'; Added: php/php-src/branches/PHP_5_4/tests/basic/030.phpt =================================================================== --- php/php-src/branches/PHP_5_4/tests/basic/030.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/tests/basic/030.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} Added: php/php-src/branches/PHP_5_4/tests/basic/031.phpt =================================================================== --- php/php-src/branches/PHP_5_4/tests/basic/031.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/tests/basic/031.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,32 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv +Content-Disposition: form-data; name="data2" + +more data +--BVoyv +Content-Disposition: form-data; name="data3" + +even more data +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(3) { + ["data"]=> + string(3) "abc" + ["data2"]=> + string(9) "more data" + ["data3"]=> + string(14) "even more data" +} Added: php/php-src/branches/PHP_5_4/tests/basic/032.phpt =================================================================== --- php/php-src/branches/PHP_5_4/tests/basic/032.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/tests/basic/032.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#18792 (no form variables after multipart/form-data) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv, charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} Modified: php/php-src/trunk/main/rfc1867.c =================================================================== --- php/php-src/trunk/main/rfc1867.c 2011-09-07 16:18:53 UTC (rev 316372) +++ php/php-src/trunk/main/rfc1867.c 2011-09-07 16:19:09 UTC (rev 316373) @@ -738,7 +738,7 @@ } } else { /* search for the end of the boundary */ - boundary_end = strchr(boundary, ','); + boundary_end = strpbrk(boundary, ",;"); } if (boundary_end) { boundary_end[0] = '\0'; Added: php/php-src/trunk/tests/basic/030.phpt =================================================================== --- php/php-src/trunk/tests/basic/030.phpt (rev 0) +++ php/php-src/trunk/tests/basic/030.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} Added: php/php-src/trunk/tests/basic/031.phpt =================================================================== --- php/php-src/trunk/tests/basic/031.phpt (rev 0) +++ php/php-src/trunk/tests/basic/031.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,32 @@ +--TEST-- +Bug#55504 (Content-Type header is not parsed correctly on HTTP POST request) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv; charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv +Content-Disposition: form-data; name="data2" + +more data +--BVoyv +Content-Disposition: form-data; name="data3" + +even more data +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(3) { + ["data"]=> + string(3) "abc" + ["data2"]=> + string(9) "more data" + ["data3"]=> + string(14) "even more data" +} Added: php/php-src/trunk/tests/basic/032.phpt =================================================================== --- php/php-src/trunk/tests/basic/032.phpt (rev 0) +++ php/php-src/trunk/tests/basic/032.phpt 2011-09-07 16:19:09 UTC (rev 316373) @@ -0,0 +1,20 @@ +--TEST-- +Bug#18792 (no form variables after multipart/form-data) +--INI-- +file_uploads=1 +--POST_RAW-- +Content-Type: multipart/form-data; boundary=BVoyv, charset=iso-8859-1 +--BVoyv +Content-Disposition: form-data; name="data" + +abc +--BVoyv-- +--FILE-- +<?php +var_dump($_POST); +?> +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +}
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php