diff options
-rw-r--r-- | ext/standard/streamsfuncs.c | 1 | ||||
-rw-r--r-- | main/streams/streams.c | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index bc8c8557de..235a0cb0a0 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -885,7 +885,6 @@ static int parse_context_options(php_stream_context *context, zval *options) if (Z_TYPE_P(wval) == IS_ARRAY) { ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(wval), okey, oval) { if (okey) { - ZVAL_DEREF(oval); php_stream_context_set_option(context, ZSTR_VAL(wkey), ZSTR_VAL(okey), oval); } } ZEND_HASH_FOREACH_END(); diff --git a/main/streams/streams.c b/main/streams/streams.c index d0f8a44b98..5e2e42a757 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -2244,9 +2244,8 @@ PHPAPI int php_stream_context_set_option(php_stream_context *context, return FAILURE; } } - if (Z_REFCOUNTED_P(optionvalue)) { - Z_ADDREF_P(optionvalue); - } + ZVAL_DEREF(optionvalue); + Z_TRY_ADDREF_P(optionvalue); return zend_hash_str_update(Z_ARRVAL_P(wrapperhash), optionname, strlen(optionname), optionvalue) ? SUCCESS : FAILURE; } /* }}} */ |