projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix read_property handler (return_value lives on stack of zend_read_property)
[m6w6/ext-http]
/
php_http_env.c
diff --git
a/php_http_env.c
b/php_http_env.c
index 239af9812a25141cfbfc1885f05150315d41b8bd..632562c38a91dc0d1cff50e613824e7d44c27c9b 100644
(file)
--- a/
php_http_env.c
+++ b/
php_http_env.c
@@
-37,12
+37,10
@@
PHP_RINIT_FUNCTION(http_env)
sapi_post_entry *post_entry = NULL;
if ((post_entry = zend_hash_find_ptr(&SG(known_post_content_types), key_str))) {
sapi_post_entry *post_entry = NULL;
if ((post_entry = zend_hash_find_ptr(&SG(known_post_content_types), key_str))) {
- if (post_entry) {
- SG(request_info).post_entry = post_entry;
+ SG(request_info).post_entry = post_entry;
- if (post_entry->post_reader) {
- post_entry->post_reader();
- }
+ if (post_entry->post_reader) {
+ post_entry->post_reader();
}
if (sapi_module.default_post_reader) {
}
if (sapi_module.default_post_reader) {
@@
-53,9
+51,12
@@
PHP_RINIT_FUNCTION(http_env)
/*
* the rfc1867 handler is an awkward buddy
/*
* the rfc1867 handler is an awkward buddy
+ * FIXME: this leaks because php_auto_globals_create_files()
+ * as well as the rfc1867_handler call
+ * array_init(&PG(http_globals)[TRACK_VARS_FILES])
*/
Z_TRY_ADDREF(PG(http_globals)[TRACK_VARS_FILES]);
*/
Z_TRY_ADDREF(PG(http_globals)[TRACK_VARS_FILES]);
- zend_hash_str_update(&EG(symbol_table).ht, "_FILES",
size
of("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]);
+ zend_hash_str_update(&EG(symbol_table).ht, "_FILES",
len
of("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]);
}
}
zend_hash_destroy(¶ms);
}
}
zend_hash_destroy(¶ms);
@@
-813,6
+814,7
@@
static PHP_METHOD(HttpEnv, negotiateLanguage)
return;
}
if (rs_array) {
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
zval_dtor(rs_array);
array_init(rs_array);
}
@@
-833,6
+835,7
@@
static PHP_METHOD(HttpEnv, negotiateCharset)
return;
}
if (rs_array) {
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
zval_dtor(rs_array);
array_init(rs_array);
}
@@
-852,6
+855,7
@@
static PHP_METHOD(HttpEnv, negotiateEncoding)
return;
}
if (rs_array) {
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
zval_dtor(rs_array);
array_init(rs_array);
}
@@
-871,6
+875,7
@@
static PHP_METHOD(HttpEnv, negotiateContentType)
return;
}
if (rs_array) {
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
zval_dtor(rs_array);
array_init(rs_array);
}
@@
-894,8
+899,8
@@
static PHP_METHOD(HttpEnv, negotiate)
return;
}
return;
}
-
if (rs_array) {
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
zval_dtor(rs_array);
array_init(rs_array);
}