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

Reply via email to