Skip to content

Commit 70d6716

Browse files
committed
Promote some warnings to Errors
1 parent 986da2a commit 70d6716

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

+790
-894
lines changed

ext/mbstring/mbstring.c

Lines changed: 89 additions & 87 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
@@ -854,8 +854,8 @@ PHP_FUNCTION(mb_regex_encoding)
854854
mbctype = _php_mb_regex_name2mbctype(encoding);
855855

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

861861
MBREX(current_mbctype) = mbctype;
@@ -921,9 +921,8 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
921921
}
922922

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

929928
re = php_mbregex_compile_pattern(arg_pattern, arg_pattern_len, options, MBREX(current_mbctype), MBREX(regex_default_syntax));
@@ -1421,13 +1420,13 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
14211420
}
14221421

14231422
if (MBREX(search_re) == NULL) {
1424-
php_error_docref(NULL, E_WARNING, "No regex given");
1425-
RETURN_FALSE;
1423+
zend_value_error("No regex given");
1424+
return;
14261425
}
14271426

14281427
if (str == NULL) {
1429-
php_error_docref(NULL, E_WARNING, "No string given");
1430-
RETURN_FALSE;
1428+
zend_value_error("No string given");
1429+
return;
14311430
}
14321431

14331432
if (MBREX(search_regs)) {
@@ -1534,8 +1533,8 @@ PHP_FUNCTION(mb_ereg_search_init)
15341533
}
15351534

15361535
if (argc > 1 && arg_pattern_len == 0) {
1537-
php_error_docref(NULL, E_WARNING, "Empty pattern");
1538-
RETURN_FALSE;
1536+
zend_value_error("Empty pattern");
1537+
return;
15391538
}
15401539

15411540
option = MBREX(regex_default_options);
@@ -1647,9 +1646,8 @@ PHP_FUNCTION(mb_ereg_search_setpos)
16471646
}
16481647

16491648
if (position < 0 || (!Z_ISUNDEF(MBREX(search_str)) && Z_TYPE(MBREX(search_str)) == IS_STRING && (size_t)position > Z_STRLEN(MBREX(search_str)))) {
1650-
php_error_docref(NULL, E_WARNING, "Position is out of range");
1651-
MBREX(search_pos) = 0;
1652-
RETURN_FALSE;
1649+
zend_value_error("Position is out of range");
1650+
return;
16531651
}
16541652

16551653
MBREX(search_pos) = position;

ext/mbstring/tests/bug43994.phpt

Lines changed: 28 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -30,106 +30,83 @@ foreach($inputs as $input) {
3030
}
3131
echo "\n-- Iteration $iterator --\n";
3232
echo "Without \$regs arg:\n";
33-
var_dump( mb_ereg($input, 'hello, world') );
33+
try {
34+
var_dump( mb_ereg($input, 'hello, world') );
35+
} catch (\ValueError $e) {
36+
echo $e->getMessage() . \PHP_EOL;
37+
}
38+
3439
echo "With \$regs arg:\n";
35-
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
40+
try {
41+
var_dump(mb_ereg($input, 'hello, world', $mb_regs));
42+
} catch (\ValueError $e) {
43+
echo $e->getMessage() . \PHP_EOL;
44+
}
3645
var_dump($mb_regs);
3746
$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 & 35 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,29 +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-
&array(5) {
53-
[0]=>
54-
string(21) "日本語テキスト"
55-
[1]=>
56-
string(21) "日本語テキスト"
57-
[2]=>
58-
string(21) "日本語テキスト"
59-
[3]=>
60-
string(21) "日本語テキスト"
61-
[4]=>
62-
*RECURSION*
63-
}
64-
}
51+
Error: Cannot handle recursive references

0 commit comments

Comments
 (0)