diff options
-rw-r--r-- | main/php_content_types.c | 4 | ||||
-rw-r--r-- | tests/basic/026.phpt | 19 |
2 files changed, 22 insertions, 1 deletions
diff --git a/main/php_content_types.c b/main/php_content_types.c index fcd431d7ce..8dc55f89d7 100644 --- a/main/php_content_types.c +++ b/main/php_content_types.c @@ -47,7 +47,9 @@ SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader) sapi_read_standard_form_data(TSRMLS_C); } - if (PG(always_populate_raw_post_data) && SG(request_info).post_data) { + /* For unknown content types we create HTTP_RAW_POST_DATA even if always_populate_raw_post_data off, + * this is in-effecient, but we need to keep doing it for BC reasons (for now) */ + if ((PG(always_populate_raw_post_data) || NULL == SG(request_info).post_entry) && SG(request_info).post_data) { length = SG(request_info).post_data_length; data = estrndup(SG(request_info).post_data, length); SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, length); diff --git a/tests/basic/026.phpt b/tests/basic/026.phpt new file mode 100644 index 0000000000..3d0d9df1ec --- /dev/null +++ b/tests/basic/026.phpt @@ -0,0 +1,19 @@ +--TEST-- +Registration of HTTP_RAW_POST_DATA due to unknown content-type +--INI-- +magic_quotes_gpc=0 +always_populate_raw_post_data=0 +--SKIPIF-- +<?php if (php_sapi_name()=='cli') echo 'skip'; ?> +--POST_RAW-- +Content-Type: unknown/type +a=1&b=ZYX +--FILE-- +<?php +var_dump($_POST, $HTTP_RAW_POST_DATA); +?> +--EXPECT-- +array(0) { +} +string(10) "a=1&b=ZYX +"
\ No newline at end of file |