Skip to content

Commit 3d06d83

Browse files
committed
Promote some warnings to Errors
1 parent c7094d8 commit 3d06d83

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+828
-924
lines changed

ext/mbstring/mbstring.c

Lines changed: 96 additions & 88 deletions
Large diffs are not rendered by default.

ext/mbstring/php_mbregex.c

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -855,8 +855,8 @@ PHP_FUNCTION(mb_regex_encoding)
855855
mbctype = _php_mb_regex_name2mbctype(encoding);
856856

857857
if (mbctype == ONIG_ENCODING_UNDEF) {
858-
php_error_docref(NULL, E_WARNING, "Unknown encoding \"%s\"", encoding);
859-
RETURN_FALSE;
858+
zend_value_error("Unknown encoding \"%s\"", encoding);
859+
return;
860860
}
861861

862862
MBREX(current_mbctype) = mbctype;
@@ -922,9 +922,8 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
922922
}
923923

924924
if (arg_pattern_len == 0) {
925-
php_error_docref(NULL, E_WARNING, "Empty pattern");
926-
RETVAL_FALSE;
927-
goto out;
925+
zend_value_error("Empty pattern");
926+
return;
928927
}
929928

930929
re = php_mbregex_compile_pattern(arg_pattern, arg_pattern_len, options, MBREX(current_mbctype), MBREX(regex_default_syntax));
@@ -1429,13 +1428,13 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
14291428
}
14301429

14311430
if (MBREX(search_re) == NULL) {
1432-
php_error_docref(NULL, E_WARNING, "No regex given");
1433-
RETURN_FALSE;
1431+
zend_value_error("No regex given");
1432+
return;
14341433
}
14351434

14361435
if (str == NULL) {
1437-
php_error_docref(NULL, E_WARNING, "No string given");
1438-
RETURN_FALSE;
1436+
zend_value_error("No string given");
1437+
return;
14391438
}
14401439

14411440
MBREX(search_regs) = onig_region_new();
@@ -1539,8 +1538,8 @@ PHP_FUNCTION(mb_ereg_search_init)
15391538
}
15401539

15411540
if (argc > 1 && arg_pattern_len == 0) {
1542-
php_error_docref(NULL, E_WARNING, "Empty pattern");
1543-
RETURN_FALSE;
1541+
zend_value_error("Empty pattern");
1542+
return;
15441543
}
15451544

15461545
option = MBREX(regex_default_options);
@@ -1654,9 +1653,8 @@ PHP_FUNCTION(mb_ereg_search_setpos)
16541653
}
16551654

16561655
if (position < 0 || (!Z_ISUNDEF(MBREX(search_str)) && Z_TYPE(MBREX(search_str)) == IS_STRING && (size_t)position > Z_STRLEN(MBREX(search_str)))) {
1657-
php_error_docref(NULL, E_WARNING, "Position is out of range");
1658-
MBREX(search_pos) = 0;
1659-
RETURN_FALSE;
1656+
zend_value_error("Position is out of range");
1657+
return;
16601658
}
16611659

16621660
MBREX(search_pos) = position;

ext/mbstring/tests/bug43994.phpt

Lines changed: 35 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -25,111 +25,88 @@ $inputs = array(NULL, null, false, FALSE, "", '', @$undefined_var,
2525

2626
$iterator = 1;
2727
foreach($inputs as $input) {
28-
if(@is_array($mb_regs)){
29-
$mb_regs = '';
28+
if(@is_array($mb_regs)){
29+
$mb_regs = '';
30+
}
31+
echo "\n-- Iteration $iterator --\n";
32+
echo "Without \$regs arg:\n";
33+
try {
34+
var_dump( mb_ereg($input, 'hello, world') );
35+
} catch (\ValueError $e) {
36+
echo $e->getMessage() . \PHP_EOL;
3037
}
31-
echo "\n-- Iteration $iterator --\n";
32-
echo "Without \$regs arg:\n";
33-
var_dump( mb_ereg($input, 'hello, world') );
34-
echo "With \$regs arg:\n";
35-
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
36-
var_dump($mb_regs);
37-
$iterator++;
38+
39+
echo "With \$regs arg:\n";
40+
try {
41+
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
42+
} catch (\ValueError $e) {
43+
echo $e->getMessage() . \PHP_EOL;
44+
}
45+
var_dump($mb_regs);
46+
$iterator++;
3847
};
3948
?>
40-
--EXPECTF--
49+
--EXPECT--
4150
-- Iteration 1 --
4251
Without $regs arg:
43-
44-
Warning: mb_ereg(): Empty pattern in %s on line %d
45-
bool(false)
52+
Empty pattern
4653
With $regs arg:
47-
48-
Warning: mb_ereg(): Empty pattern in %s on line %d
49-
bool(false)
54+
Empty pattern
5055
array(0) {
5156
}
5257

5358
-- Iteration 2 --
5459
Without $regs arg:
55-
56-
Warning: mb_ereg(): Empty pattern in %s on line %d
57-
bool(false)
60+
Empty pattern
5861
With $regs arg:
59-
60-
Warning: mb_ereg(): Empty pattern in %s on line %d
61-
bool(false)
62+
Empty pattern
6263
array(0) {
6364
}
6465

6566
-- Iteration 3 --
6667
Without $regs arg:
67-
68-
Warning: mb_ereg(): Empty pattern in %s on line %d
69-
bool(false)
68+
Empty pattern
7069
With $regs arg:
71-
72-
Warning: mb_ereg(): Empty pattern in %s on line %d
73-
bool(false)
70+
Empty pattern
7471
array(0) {
7572
}
7673

7774
-- Iteration 4 --
7875
Without $regs arg:
79-
80-
Warning: mb_ereg(): Empty pattern in %s on line %d
81-
bool(false)
76+
Empty pattern
8277
With $regs arg:
83-
84-
Warning: mb_ereg(): Empty pattern in %s on line %d
85-
bool(false)
78+
Empty pattern
8679
array(0) {
8780
}
8881

8982
-- Iteration 5 --
9083
Without $regs arg:
91-
92-
Warning: mb_ereg(): Empty pattern in %s on line %d
93-
bool(false)
84+
Empty pattern
9485
With $regs arg:
95-
96-
Warning: mb_ereg(): Empty pattern in %s on line %d
97-
bool(false)
86+
Empty pattern
9887
array(0) {
9988
}
10089

10190
-- Iteration 6 --
10291
Without $regs arg:
103-
104-
Warning: mb_ereg(): Empty pattern in %s on line %d
105-
bool(false)
92+
Empty pattern
10693
With $regs arg:
107-
108-
Warning: mb_ereg(): Empty pattern in %s on line %d
109-
bool(false)
94+
Empty pattern
11095
array(0) {
11196
}
11297

11398
-- Iteration 7 --
11499
Without $regs arg:
115-
116-
Warning: mb_ereg(): Empty pattern in %s on line %d
117-
bool(false)
100+
Empty pattern
118101
With $regs arg:
119-
120-
Warning: mb_ereg(): Empty pattern in %s on line %d
121-
bool(false)
102+
Empty pattern
122103
array(0) {
123104
}
124105

125106
-- Iteration 8 --
126107
Without $regs arg:
127-
128-
Warning: mb_ereg(): Empty pattern in %s on line %d
129-
bool(false)
108+
Empty pattern
130109
With $regs arg:
131-
132-
Warning: mb_ereg(): Empty pattern in %s on line %d
133-
bool(false)
110+
Empty pattern
134111
array(0) {
135112
}

ext/mbstring/tests/bug43998.phpt

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,49 +22,37 @@ $sourcestring = 'Hello, World';
2222
$inputs = array(12345, 12.3456789000E-10, true, false, "");
2323
$iterator = 1;
2424
foreach($inputs as $input) {
25-
echo "\n-- Iteration $iterator --\n";
26-
var_dump( mb_strtolower($sourcestring, $input) );
27-
var_dump( mb_strtoupper($sourcestring, $input) );
28-
$iterator++;
25+
echo "\n-- Iteration $iterator --\n";
26+
try {
27+
var_dump( mb_strtolower($sourcestring, $input) );
28+
} catch (\ValueError $e) {
29+
echo $e->getMessage() . \PHP_EOL;
30+
}
31+
try {
32+
var_dump( mb_strtoupper($sourcestring, $input) );
33+
} catch (\ValueError $e) {
34+
echo $e->getMessage() . \PHP_EOL;
35+
}
36+
$iterator++;
2937
};
3038
?>
31-
--EXPECTF--
39+
--EXPECT--
3240
-- Iteration 1 --
33-
34-
Warning: mb_strtolower(): Unknown encoding "12345" in %s on line %d
35-
bool(false)
36-
37-
Warning: mb_strtoupper(): Unknown encoding "12345" in %s on line %d
38-
bool(false)
41+
Unknown encoding "12345"
42+
Unknown encoding "12345"
3943

4044
-- Iteration 2 --
41-
42-
Warning: mb_strtolower(): Unknown encoding "1.23456789E-9" in %s on line %d
43-
bool(false)
44-
45-
Warning: mb_strtoupper(): Unknown encoding "1.23456789E-9" in %s on line %d
46-
bool(false)
45+
Unknown encoding "1.23456789E-9"
46+
Unknown encoding "1.23456789E-9"
4747

4848
-- Iteration 3 --
49-
50-
Warning: mb_strtolower(): Unknown encoding "1" in %s on line %d
51-
bool(false)
52-
53-
Warning: mb_strtoupper(): Unknown encoding "1" in %s on line %d
54-
bool(false)
49+
Unknown encoding "1"
50+
Unknown encoding "1"
5551

5652
-- Iteration 4 --
57-
58-
Warning: mb_strtolower(): Unknown encoding "" in %s on line %d
59-
bool(false)
60-
61-
Warning: mb_strtoupper(): Unknown encoding "" in %s on line %d
62-
bool(false)
53+
Unknown encoding ""
54+
Unknown encoding ""
6355

6456
-- Iteration 5 --
65-
66-
Warning: mb_strtolower(): Unknown encoding "" in %s on line %d
67-
bool(false)
68-
69-
Warning: mb_strtoupper(): Unknown encoding "" in %s on line %d
70-
bool(false)
57+
Unknown encoding ""
58+
Unknown encoding ""

ext/mbstring/tests/bug45923.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
Bug #45923 (mb_st[r]ripos() offset not handled correctly)
2+
Bug #45%d23 (mb_st[r]ripos() offset not handled correctly)
33
--SKIPIF--
44
<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
55
--FILE--

ext/mbstring/tests/bug66964.phpt

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,18 @@ Bug #66964 (mb_convert_variables() cannot detect recursion)
55
--FILE--
66
<?php
77
$a[] = &$a;
8-
var_dump(mb_convert_variables('utf-8', 'auto', $a));
9-
var_dump(mb_convert_variables('utf-8', 'utf-8', $a));
8+
9+
try {
10+
var_dump(mb_convert_variables('utf-8', 'auto', $a));
11+
} catch (\Error $e) {
12+
echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL;
13+
}
14+
15+
try {
16+
var_dump(mb_convert_variables('utf-8', 'utf-8', $a));
17+
} catch (\Error $e) {
18+
echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL;
19+
}
1020

1121
unset($a);
1222
$a[] = '日本語テキスト';
@@ -16,15 +26,17 @@ $a[] = '日本語テキスト';
1626
var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a);
1727

1828
$a[] = &$a;
19-
var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a);
2029

21-
?>
22-
--EXPECTF--
23-
Warning: mb_convert_variables(): %s on line %d
24-
bool(false)
30+
try {
31+
var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a);
32+
} catch (\Error $e) {
33+
echo get_class($e) . ': ' . $e->getMessage() . \PHP_EOL;
34+
}
2535

26-
Warning: mb_convert_variables(): %s on line %d
27-
bool(false)
36+
?>
37+
--EXPECT--
38+
Error: Cannot handle recursive references
39+
Error: Cannot handle recursive references
2840
string(5) "UTF-8"
2941
array(4) {
3042
[0]=>
@@ -36,18 +48,4 @@ array(4) {
3648
[3]=>
3749
string(21) "日本語テキスト"
3850
}
39-
40-
Warning: mb_convert_variables(): %s on line %d
41-
bool(false)
42-
array(5) {
43-
[0]=>
44-
string(21) "日本語テキスト"
45-
[1]=>
46-
string(21) "日本語テキスト"
47-
[2]=>
48-
string(21) "日本語テキスト"
49-
[3]=>
50-
string(21) "日本語テキスト"
51-
[4]=>
52-
*RECURSION*
53-
}
51+
Error: Cannot handle recursive references

0 commit comments

Comments
 (0)