]> granicus.if.org Git - php/commitdiff
Register RAW_POST_DATA even when always_populate_raw_post_data is off in
authorIlia Alshanetsky <iliaa@php.net>
Mon, 7 May 2007 23:27:59 +0000 (23:27 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 7 May 2007 23:27:59 +0000 (23:27 +0000)
instances where content type is not known

main/php_content_types.c
tests/basic/026.phpt [new file with mode: 0644]

index fcd431d7ce31c723df0054ec21289c1616390880..8dc55f89d771ac1fa9224551e15e816ac623ddbe 100644 (file)
@@ -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 (file)
index 0000000..3d0d9df
--- /dev/null
@@ -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