X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_http_env.c;h=632562c38a91dc0d1cff50e613824e7d44c27c9b;hb=d01985309a42186e0c3ac1e8dd6e2d4a094d30c9;hp=a2c3227ea94127d85a2b6b3dfc3bec3dcc8c8d3d;hpb=a41703eafb1f1bb7f2968e97d471499c986a471b;p=m6w6%2Fext-http diff --git a/php_http_env.c b/php_http_env.c index a2c3227..632562c 100644 --- 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))) { - 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) { @@ -53,9 +51,12 @@ PHP_RINIT_FUNCTION(http_env) /* * 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]); - zend_hash_str_update(&EG(symbol_table).ht, "_FILES", sizeof("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]); + zend_hash_str_update(&EG(symbol_table).ht, "_FILES", lenof("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]); } } zend_hash_destroy(¶ms); @@ -137,7 +138,7 @@ char *php_http_env_get_request_header(const char *name_str, size_t name_len, siz request_headers = PHP_HTTP_G->env.request.headers; } - if ((zvalue == zend_symtable_str_find(request_headers, key, name_len))) { + if ((zvalue = zend_symtable_str_find(request_headers, key, name_len))) { zend_string *zs = zval_get_string(zvalue); val = estrndup(zs->val, zs->len); @@ -813,6 +814,7 @@ static PHP_METHOD(HttpEnv, negotiateLanguage) return; } if (rs_array) { + ZVAL_DEREF(rs_array); zval_dtor(rs_array); array_init(rs_array); } @@ -833,6 +835,7 @@ static PHP_METHOD(HttpEnv, negotiateCharset) return; } if (rs_array) { + ZVAL_DEREF(rs_array); zval_dtor(rs_array); array_init(rs_array); } @@ -852,6 +855,7 @@ static PHP_METHOD(HttpEnv, negotiateEncoding) return; } if (rs_array) { + ZVAL_DEREF(rs_array); zval_dtor(rs_array); array_init(rs_array); } @@ -871,6 +875,7 @@ static PHP_METHOD(HttpEnv, negotiateContentType) return; } if (rs_array) { + ZVAL_DEREF(rs_array); zval_dtor(rs_array); array_init(rs_array); } @@ -894,8 +899,8 @@ static PHP_METHOD(HttpEnv, negotiate) return; } - if (rs_array) { + ZVAL_DEREF(rs_array); zval_dtor(rs_array); array_init(rs_array); }