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