summaryrefslogtreecommitdiff
path: root/ext/standard/streamsfuncs.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-07-02 18:43:06 +0800
committerXinchen Hui <laruence@php.net>2015-07-02 18:43:06 +0800
commit72b0627315e6606310c1042a51dad6e835620bab (patch)
treea15c4f11e5361607d663234af1c6afd97b61c6c0 /ext/standard/streamsfuncs.c
parent3422fb57c88cdb82868b845e0690569c376f080c (diff)
downloadphp-git-72b0627315e6606310c1042a51dad6e835620bab.tar.gz
Fixed bug #69521 (Segfault in gc_collect_cycles()).
Diffstat (limited to 'ext/standard/streamsfuncs.c')
-rw-r--r--ext/standard/streamsfuncs.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index d5c3f53dc3..a61dbffdc5 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -656,10 +656,7 @@ static int stream_array_from_fd_set(zval *stream_array, fd_set *fds)
} ZEND_HASH_FOREACH_END();
/* destroy old array and add new one */
- zend_hash_destroy(Z_ARRVAL_P(stream_array));
- GC_REMOVE_FROM_BUFFER(Z_ARR_P(stream_array));
- efree(Z_ARR_P(stream_array));
-
+ zend_array_destroy(Z_ARR_P(stream_array));
Z_ARR_P(stream_array) = Z_ARR(new_array);
return ret;
@@ -700,12 +697,10 @@ static int stream_array_emulate_read_fd_set(zval *stream_array)
if (ret > 0) {
/* destroy old array and add new one */
- zend_hash_destroy(Z_ARRVAL_P(stream_array));
- efree(Z_ARR_P(stream_array));
+ zend_array_destroy(Z_ARR_P(stream_array));
Z_ARR_P(stream_array) = Z_ARR(new_array);
} else {
- zend_hash_destroy(Z_ARRVAL(new_array));
- efree(Z_ARR(new_array));
+ zend_array_destroy(Z_ARR(new_array));
}
return ret;
@@ -1020,7 +1015,7 @@ PHP_FUNCTION(stream_context_set_params)
Get parameters of a file context */
PHP_FUNCTION(stream_context_get_params)
{
- zval *zcontext, options;
+ zval *zcontext;
php_stream_context *context;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zcontext) == FAILURE) {