summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/rfc1867.c2
-rw-r--r--tests/basic/030.phpt20
-rw-r--r--tests/basic/031.phpt32
-rw-r--r--tests/basic/032.phpt20
4 files changed, 73 insertions, 1 deletions
diff --git a/main/rfc1867.c b/main/rfc1867.c
index f6dfae997b..5c53cbb8a1 100644
--- a/main/rfc1867.c
+++ b/main/rfc1867.c
@@ -738,7 +738,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
}
} else {
/* search for the end of the boundary */
- boundary_end = strchr(boundary, ',');
+ boundary_end = strpbrk(boundary, ",;");
}
if (boundary_end) {
boundary_end[0] = '\0';
diff --git a/tests/basic/030.phpt b/tests/basic/030.phpt
new file mode 100644
index 0000000000..cf2a270d26
--- /dev/null
+++ b/tests/basic/030.phpt
@@ -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"
+}
diff --git a/tests/basic/031.phpt b/tests/basic/031.phpt
new file mode 100644
index 0000000000..12b8354287
--- /dev/null
+++ b/tests/basic/031.phpt
@@ -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"
+}
diff --git a/tests/basic/032.phpt b/tests/basic/032.phpt
new file mode 100644
index 0000000000..a6aba5bb66
--- /dev/null
+++ b/tests/basic/032.phpt
@@ -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"
+}