From: Hannes Magnusson Date: Sun, 13 Apr 2008 22:35:27 +0000 (+0000) Subject: Fixed bug#44712 (stream_context_set_params segfaults on invalid arguments) X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~383 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5fcd85240ba1148f304c445ac38f339ca9defcc1;p=php Fixed bug#44712 (stream_context_set_params segfaults on invalid arguments) --- diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index ecd18f9aa9..d1c4d2889d 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -901,7 +901,11 @@ static int parse_context_params(php_stream_context *context, zval *params) context->notifier->dtor = user_space_stream_notifier_dtor; } if (SUCCESS == zend_hash_find(Z_ARRVAL_P(params), "options", sizeof("options"), (void**)&tmp)) { - parse_context_options(context, *tmp); + if (Z_TYPE_PP(tmp) == IS_ARRAY) { + parse_context_options(context, *tmp); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid stream/context parameter"); + } } return ret; diff --git a/ext/standard/tests/streams/bug44712.phpt b/ext/standard/tests/streams/bug44712.phpt new file mode 100644 index 0000000000..9dfb26001b --- /dev/null +++ b/ext/standard/tests/streams/bug44712.phpt @@ -0,0 +1,10 @@ +--TEST-- +bug#44712 (stream_context_set_params segfaults on invalid arguments) +--FILE-- + 1)); +?> +--EXPECTF-- +Warning: stream_context_set_params(): Invalid stream/context parameter in %sbug44712.php on line %s +