From 43fb787add8ec5c7ea48586c76f793f258902d35 Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Wed, 7 Sep 2011 16:19:09 +0000 Subject: [PATCH] Fixed bug #55504 (Content-Type header is not parsed correctly on HTTP POST request --- main/rfc1867.c | 2 +- tests/basic/030.phpt | 20 ++++++++++++++++++++ tests/basic/031.phpt | 32 ++++++++++++++++++++++++++++++++ tests/basic/032.phpt | 20 ++++++++++++++++++++ 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 tests/basic/030.phpt create mode 100644 tests/basic/031.phpt create mode 100644 tests/basic/032.phpt 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-- + +--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-- + +--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-- + +--EXPECT-- +array(1) { + ["data"]=> + string(3) "abc" +} -- 2.50.1