diff options
author | Xinchen Hui <laruence@php.net> | 2015-07-02 18:43:06 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-07-02 18:43:06 +0800 |
commit | 72b0627315e6606310c1042a51dad6e835620bab (patch) | |
tree | a15c4f11e5361607d663234af1c6afd97b61c6c0 /ext/standard/streamsfuncs.c | |
parent | 3422fb57c88cdb82868b845e0690569c376f080c (diff) | |
download | php-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.c | 13 |
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) { |