summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/streamsfuncs.c1
-rw-r--r--main/streams/streams.c5
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;
}
/* }}} */