com php-src: Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default): NEWS ext/standard/st reamsfuncs.c
ext/standard/tests/streams/bug71884 .phpt

From: Date: Wed, 23 Mar 2016 08:16:26 +0000
Subject: com php-src: Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default): NEWS ext/standard/st reamsfuncs.c
ext/standard/tests/streams/bug71884 .phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-91465@lists.php.net to get a copy of this message
Commit: a3946de3397fa081226d74210d726af0f69ef82f Author: Xinchen Hui <laruence@gmail.com> Wed, 23 Mar 2016 16:16:26 +0800 Parents: 241ba9dcb195160e323847757413603a3cc72a1f Branches: PHP-7.0 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=a3946de3397fa081226d74210d726af0f69ef82f Log: Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default) Bugs: https://bugs.php.net/71884 Changed paths: M NEWS M ext/standard/streamsfuncs.c A ext/standard/tests/streams/bug71884.phpt Diff: diff --git a/NEWS b/NEWS index 9840730..d0e349c 100644 --- a/NEWS +++ b/NEWS @@ -45,6 +45,8 @@ PHP NEWS . Fixed bug #71735 (Double-free in SplDoublyLinkedList::offsetSet). (Stas) - Standard: + . Fixed bug #71884 (Null pointer deref (segfault) in + stream_context_get_default). (Laruence) . Fixed bug #71837 (Wrong arrays behaviour). (Laruence) . Fixed bug #71840 (Unserialize accepts wrongly data). (Ryat, Laruence) diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index c2f200e..def1fb8 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"); } diff --git a/ext/standard/tests/streams/bug71884.phpt b/ext/standard/tests/streams/bug71884.phpt new file mode 100644 index 0000000..798c6b6 --- /dev/null +++ b/ext/standard/tests/streams/bug71884.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #71884 (Null pointer deref (segfault) in stream_context_get_default) +--FILE-- +<?php +$arr=array(); +$arr[0]['A']=0; +stream_context_get_default($arr); +?> +--EXPECTF-- +Warning: stream_context_get_default(): options should have the form ["wrappername"]["optionname"] = $value in %sbug71884.php on line %d

« previous php.cvs (#91465) next »