1
0
mirror of https://github.com/php/php-src.git synced 2026-04-24 08:28:26 +02:00
"always_populate_raw_post_data = On" breaks HTTP file uploads
This commit is contained in:
Hartmut Holzgraefe
2002-11-08 08:41:52 +00:00
parent 72e0aa894a
commit 5aec6f4e33
2 changed files with 22 additions and 5 deletions
+5 -1
View File
@@ -150,15 +150,19 @@ static void sapi_read_post_data(TSRMLS_D)
}
}
/* now try to find an appropriate POST content handler */
if (zend_hash_find(&known_post_content_types, content_type, content_type_length+1, (void **) &post_entry)==SUCCESS) {
/* found one, register it for use */
SG(request_info).post_entry = post_entry;
post_reader_func = post_entry->post_reader;
} else {
/* fallback */
SG(request_info).post_entry = NULL;
if (!sapi_module.default_post_reader) {
/* no default reader ? */
sapi_module.sapi_error(E_WARNING, "Unsupported content type: '%s'", content_type);
return;
}
SG(request_info).post_entry = NULL;
}
if (oldchar) {
*(p-1) = oldchar;
+17 -4
View File
@@ -37,12 +37,25 @@ static sapi_post_entry php_post_entries[] = {
*/
SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader)
{
char *data;
char *data = NULL;
if(PG(always_populate_raw_post_data)) {
if(!SG(request_info).post_data) sapi_read_standard_form_data(TSRMLS_C);
data = estrndup(SG(request_info).post_data, SG(request_info).post_data_length);
SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, SG(request_info).post_data_length);
if(NULL == SG(request_info).post_data) { /* no data yet */
if(NULL == SG(request_info).post_entry) {
/* no post handler registered, so we just swallow the data */
sapi_read_standard_form_data(TSRMLS_C);
data = SG(request_info).post_data;
SG(request_info).post_data = NULL;
SG(request_info).post_data_length = 0;
}
} else {
/* copy existing post data */
data = estrndup(SG(request_info).post_data, SG(request_info).post_data_length);
}
if(data) {
SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, SG(request_info).post_data_length);
}
}
}
/* }}} */