Browse Source

Fixed bug#44712 (stream_context_set_params segfaults on invalid arguments)

PECL
Hannes Magnusson 18 years ago
parent
commit
5fcd85240b
  1. 6
      ext/standard/streamsfuncs.c
  2. 10
      ext/standard/tests/streams/bug44712.phpt

6
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;

10
ext/standard/tests/streams/bug44712.phpt

@ -0,0 +1,10 @@
--TEST--
bug#44712 (stream_context_set_params segfaults on invalid arguments)
--FILE--
<?php
$ctx = stream_context_get_default();
stream_context_set_params($ctx, array("options" => 1));
?>
--EXPECTF--
Warning: stream_context_set_params(): Invalid stream/context parameter in %sbug44712.php on line %s
Loading…
Cancel
Save