mirror of
https://github.com/php/php-src.git
synced 2025-08-20 09:24:05 +02:00
Fixed memory leaks
This commit is contained in:
parent
d2de055ef1
commit
83657db8ff
2 changed files with 8 additions and 6 deletions
|
@ -627,10 +627,8 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ALLOC_ZVAL(arr);
|
ALLOC_INIT_ZVAL(arr);
|
||||||
array_init(arr);
|
array_init(arr);
|
||||||
arr->is_ref = 0;
|
|
||||||
arr->refcount = 0;
|
|
||||||
|
|
||||||
/* Prepare argv */
|
/* Prepare argv */
|
||||||
if (SG(request_info).argc) { /* are we in cli sapi? */
|
if (SG(request_info).argc) { /* are we in cli sapi? */
|
||||||
|
@ -670,15 +668,13 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* prepare argc */
|
/* prepare argc */
|
||||||
ALLOC_ZVAL(argc);
|
ALLOC_INIT_ZVAL(argc);
|
||||||
if (SG(request_info).argc) {
|
if (SG(request_info).argc) {
|
||||||
Z_LVAL_P(argc) = SG(request_info).argc;
|
Z_LVAL_P(argc) = SG(request_info).argc;
|
||||||
} else {
|
} else {
|
||||||
Z_LVAL_P(argc) = count;
|
Z_LVAL_P(argc) = count;
|
||||||
}
|
}
|
||||||
Z_TYPE_P(argc) = IS_LONG;
|
Z_TYPE_P(argc) = IS_LONG;
|
||||||
argc->is_ref = 0;
|
|
||||||
argc->refcount = 0;
|
|
||||||
|
|
||||||
if (SG(request_info).argc) {
|
if (SG(request_info).argc) {
|
||||||
arr->refcount++;
|
arr->refcount++;
|
||||||
|
@ -692,6 +688,8 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
|
||||||
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"), &arr, sizeof(zval *), NULL);
|
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"), &arr, sizeof(zval *), NULL);
|
||||||
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"), &argc, sizeof(zval *), NULL);
|
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"), &argc, sizeof(zval *), NULL);
|
||||||
}
|
}
|
||||||
|
zval_ptr_dtor(&arr);
|
||||||
|
zval_ptr_dtor(&argc);
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
|
@ -412,12 +412,16 @@ void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
|
||||||
{
|
{
|
||||||
if (PG(http_globals)[TRACK_VARS_ENV] &&
|
if (PG(http_globals)[TRACK_VARS_ENV] &&
|
||||||
array_ptr != PG(http_globals)[TRACK_VARS_ENV]) {
|
array_ptr != PG(http_globals)[TRACK_VARS_ENV]) {
|
||||||
|
zval_dtor(array_ptr);
|
||||||
*array_ptr = *PG(http_globals)[TRACK_VARS_ENV];
|
*array_ptr = *PG(http_globals)[TRACK_VARS_ENV];
|
||||||
|
INIT_PZVAL(array_ptr);
|
||||||
zval_copy_ctor(array_ptr);
|
zval_copy_ctor(array_ptr);
|
||||||
return;
|
return;
|
||||||
} else if (PG(http_globals)[TRACK_VARS_SERVER] &&
|
} else if (PG(http_globals)[TRACK_VARS_SERVER] &&
|
||||||
array_ptr != PG(http_globals)[TRACK_VARS_SERVER]) {
|
array_ptr != PG(http_globals)[TRACK_VARS_SERVER]) {
|
||||||
|
zval_dtor(array_ptr);
|
||||||
*array_ptr = *PG(http_globals)[TRACK_VARS_SERVER];
|
*array_ptr = *PG(http_globals)[TRACK_VARS_SERVER];
|
||||||
|
INIT_PZVAL(array_ptr);
|
||||||
zval_copy_ctor(array_ptr);
|
zval_copy_ctor(array_ptr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue