Skip to content

Commit 555eec7

Browse files
committed
Promote warnings to exceptions for some filter functions
1 parent c312294 commit 555eec7

File tree

2 files changed

+26
-19
lines changed

2 files changed

+26
-19
lines changed

ext/standard/tests/filters/001.phpt

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,31 @@
22
stream_filter_register() and invalid arguments
33
--FILE--
44
<?php
5+
try {
6+
stream_filter_register("", "");
7+
} catch (ValueError $exception) {
8+
echo $exception->getMessage() . "\n";
9+
}
10+
11+
try {
12+
stream_filter_register("test", "");
13+
} catch (ValueError $exception) {
14+
echo $exception->getMessage() . "\n";
15+
}
16+
17+
try {
18+
stream_filter_register("", "test");
19+
} catch (ValueError $exception) {
20+
echo $exception->getMessage() . "\n";
21+
}
522

6-
var_dump(stream_filter_register("", ""));
7-
var_dump(stream_filter_register("test", ""));
8-
var_dump(stream_filter_register("", "test"));
923
var_dump(stream_filter_register("------", "nonexistentclass"));
1024

1125
echo "Done\n";
1226
?>
1327
--EXPECTF--
14-
Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
15-
bool(false)
16-
17-
Warning: stream_filter_register(): Class name cannot be empty in %s on line %d
18-
bool(false)
19-
20-
Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
21-
bool(false)
28+
Filter name cannot be empty
29+
Class name cannot be empty
30+
Filter name cannot be empty
2231
bool(true)
2332
Done

ext/standard/user_filters.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ static void filter_item_dtor(zval *zv)
389389
efree(fdat);
390390
}
391391

392-
/* {{{ proto object|false stream_bucket_make_writeable(resource brigade)
392+
/* {{{ proto object|null stream_bucket_make_writeable(resource brigade)
393393
Return a bucket object from the brigade for operating on */
394394
PHP_FUNCTION(stream_bucket_make_writeable)
395395
{
@@ -434,8 +434,8 @@ static void php_stream_bucket_attach(int append, INTERNAL_FUNCTION_PARAMETERS)
434434
ZEND_PARSE_PARAMETERS_END();
435435

436436
if (NULL == (pzbucket = zend_hash_str_find(Z_OBJPROP_P(zobject), "bucket", sizeof("bucket")-1))) {
437-
php_error_docref(NULL, E_WARNING, "Object has no bucket property");
438-
RETURN_FALSE;
437+
zend_value_error("Object has no bucket property");
438+
return;
439439
}
440440

441441
if ((brigade = (php_stream_bucket_brigade*)zend_fetch_resource(
@@ -505,7 +505,6 @@ PHP_FUNCTION(stream_bucket_new)
505505
ZEND_PARSE_PARAMETERS_END();
506506

507507
php_stream_from_zval(stream, zstream);
508-
509508
pbuffer = pemalloc(buffer_len, php_stream_is_persistent(stream));
510509

511510
memcpy(pbuffer, buffer, buffer_len);
@@ -564,15 +563,13 @@ PHP_FUNCTION(stream_filter_register)
564563
Z_PARAM_STR(classname)
565564
ZEND_PARSE_PARAMETERS_END();
566565

567-
RETVAL_FALSE;
568-
569566
if (!ZSTR_LEN(filtername)) {
570-
php_error_docref(NULL, E_WARNING, "Filter name cannot be empty");
567+
zend_value_error("Filter name cannot be empty");
571568
return;
572569
}
573570

574571
if (!ZSTR_LEN(classname)) {
575-
php_error_docref(NULL, E_WARNING, "Class name cannot be empty");
572+
zend_value_error("Class name cannot be empty");
576573
return;
577574
}
578575

@@ -590,6 +587,7 @@ PHP_FUNCTION(stream_filter_register)
590587
} else {
591588
zend_string_release_ex(classname, 0);
592589
efree(fdat);
590+
RETVAL_FALSE;
593591
}
594592
}
595593
/* }}} */

0 commit comments

Comments
 (0)