1
0
mirror of https://github.com/php/php-src.git synced 2026-04-12 18:43:37 +02:00

Promote warnings to exceptions for some filter functions

This commit is contained in:
Máté Kocsis
2019-12-10 23:50:10 +01:00
parent c31229429b
commit 555eec7d86
2 changed files with 26 additions and 19 deletions

View File

@@ -2,22 +2,31 @@
stream_filter_register() and invalid arguments
--FILE--
<?php
try {
stream_filter_register("", "");
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}
try {
stream_filter_register("test", "");
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}
try {
stream_filter_register("", "test");
} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}
var_dump(stream_filter_register("", ""));
var_dump(stream_filter_register("test", ""));
var_dump(stream_filter_register("", "test"));
var_dump(stream_filter_register("------", "nonexistentclass"));
echo "Done\n";
?>
--EXPECTF--
Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
bool(false)
Warning: stream_filter_register(): Class name cannot be empty in %s on line %d
bool(false)
Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
bool(false)
Filter name cannot be empty
Class name cannot be empty
Filter name cannot be empty
bool(true)
Done

View File

@@ -389,7 +389,7 @@ static void filter_item_dtor(zval *zv)
efree(fdat);
}
/* {{{ proto object|false stream_bucket_make_writeable(resource brigade)
/* {{{ proto object|null stream_bucket_make_writeable(resource brigade)
Return a bucket object from the brigade for operating on */
PHP_FUNCTION(stream_bucket_make_writeable)
{
@@ -434,8 +434,8 @@ static void php_stream_bucket_attach(int append, INTERNAL_FUNCTION_PARAMETERS)
ZEND_PARSE_PARAMETERS_END();
if (NULL == (pzbucket = zend_hash_str_find(Z_OBJPROP_P(zobject), "bucket", sizeof("bucket")-1))) {
php_error_docref(NULL, E_WARNING, "Object has no bucket property");
RETURN_FALSE;
zend_value_error("Object has no bucket property");
return;
}
if ((brigade = (php_stream_bucket_brigade*)zend_fetch_resource(
@@ -505,7 +505,6 @@ PHP_FUNCTION(stream_bucket_new)
ZEND_PARSE_PARAMETERS_END();
php_stream_from_zval(stream, zstream);
pbuffer = pemalloc(buffer_len, php_stream_is_persistent(stream));
memcpy(pbuffer, buffer, buffer_len);
@@ -564,15 +563,13 @@ PHP_FUNCTION(stream_filter_register)
Z_PARAM_STR(classname)
ZEND_PARSE_PARAMETERS_END();
RETVAL_FALSE;
if (!ZSTR_LEN(filtername)) {
php_error_docref(NULL, E_WARNING, "Filter name cannot be empty");
zend_value_error("Filter name cannot be empty");
return;
}
if (!ZSTR_LEN(classname)) {
php_error_docref(NULL, E_WARNING, "Class name cannot be empty");
zend_value_error("Class name cannot be empty");
return;
}
@@ -590,6 +587,7 @@ PHP_FUNCTION(stream_filter_register)
} else {
zend_string_release_ex(classname, 0);
efree(fdat);
RETVAL_FALSE;
}
}
/* }}} */