summaryrefslogtreecommitdiff
path: root/ext/standard/streamsfuncs.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-03-23 16:16:26 +0800
committerXinchen Hui <laruence@gmail.com>2016-03-23 16:16:26 +0800
commita3946de3397fa081226d74210d726af0f69ef82f (patch)
tree10af68bafab4c98879c72f9b4b279705d920c82d /ext/standard/streamsfuncs.c
parent241ba9dcb195160e323847757413603a3cc72a1f (diff)
downloadphp-git-a3946de3397fa081226d74210d726af0f69ef82f.tar.gz
Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default)
Diffstat (limited to 'ext/standard/streamsfuncs.c')
-rw-r--r--ext/standard/streamsfuncs.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index c2f200eedd..def1fb88d7 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -883,13 +883,12 @@ static int parse_context_options(php_stream_context *context, zval *options)
ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(options), wkey, wval) {
ZVAL_DEREF(wval);
- if (Z_TYPE_P(wval) == IS_ARRAY) {
- ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(wval), okey, oval) {
+ if (wkey && Z_TYPE_P(wval) == IS_ARRAY) {
+ ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(wval), okey, oval) {
if (okey) {
php_stream_context_set_option(context, ZSTR_VAL(wkey), ZSTR_VAL(okey), oval);
}
} ZEND_HASH_FOREACH_END();
-
} else {
php_error_docref(NULL, E_WARNING, "options should have the form [\"wrappername\"][\"optionname\"] = $value");
}