mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
zend_execute: Suppress values in UnhandledMatchError for zend.exception_ignore_args=1 (#17619)
Fixes php/php-src#17618.
This commit is contained in:
2
NEWS
2
NEWS
@@ -8,6 +8,8 @@ PHP NEWS
|
||||
- Core:
|
||||
. Fixed bug GH-17623 (Broken stack overflow detection for variable
|
||||
compilation). (ilutov)
|
||||
. Fixed bug GH-17618 (UnhandledMatchError does not take
|
||||
zend.exception_ignore_args=1 into account). (timwolla)
|
||||
|
||||
- PHPDBG:
|
||||
. Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)
|
||||
|
||||
42
Zend/tests/match/049.phpt
Normal file
42
Zend/tests/match/049.phpt
Normal file
@@ -0,0 +1,42 @@
|
||||
--TEST--
|
||||
Match expression error messages (zend.exception_ignore_args=1)
|
||||
--INI--
|
||||
zend.exception_ignore_args=1
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Beep {}
|
||||
|
||||
function test(mixed $var) {
|
||||
try {
|
||||
match($var) {};
|
||||
} catch (UnhandledMatchError $e) {
|
||||
print $e->getMessage() . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
test(null);
|
||||
test(1);
|
||||
test(5.5);
|
||||
test(5.0);
|
||||
test("foo");
|
||||
test(true);
|
||||
test(false);
|
||||
test([1, 2, 3]);
|
||||
test(new Beep());
|
||||
// Testing long strings.
|
||||
test(str_repeat('e', 100));
|
||||
test(str_repeat("e\n", 100));
|
||||
?>
|
||||
--EXPECT--
|
||||
Unhandled match case of type null
|
||||
Unhandled match case of type int
|
||||
Unhandled match case of type float
|
||||
Unhandled match case of type float
|
||||
Unhandled match case of type string
|
||||
Unhandled match case of type bool
|
||||
Unhandled match case of type bool
|
||||
Unhandled match case of type array
|
||||
Unhandled match case of type Beep
|
||||
Unhandled match case of type string
|
||||
Unhandled match case of type string
|
||||
@@ -872,7 +872,7 @@ ZEND_COLD void zend_match_unhandled_error(const zval *value)
|
||||
{
|
||||
smart_str msg = {0};
|
||||
|
||||
if (Z_TYPE_P(value) <= IS_STRING) {
|
||||
if (!EG(exception_ignore_args) && Z_TYPE_P(value) <= IS_STRING) {
|
||||
smart_str_append_scalar(&msg, value, EG(exception_string_param_max_len));
|
||||
} else {
|
||||
smart_str_appendl(&msg, "of type ", sizeof("of type ")-1);
|
||||
|
||||
Reference in New Issue
Block a user