1--TEST--
2Bug #40754 (Overflow checks inside string functions)
3--FILE--
4<?php
5
6$v = 2147483647;
7
8var_dump(substr("abcde", 1, $v));
9var_dump(substr_replace("abcde", "x", $v, $v));
10var_dump(strspn("abcde", "abc", $v, $v));
11var_dump(strcspn("abcde", "abc", $v, $v));
12
13try {
14    var_dump(substr_count("abcde", "abc", $v, $v));
15} catch (ValueError $exception) {
16    echo $exception->getMessage() . "\n";
17}
18
19try {
20    substr_compare("abcde", "abc", $v, $v);
21} catch (ValueError $exception) {
22    echo $exception->getMessage() . "\n";
23}
24
25try {
26    stripos("abcde", "abc", $v);
27} catch (ValueError $exception) {
28    echo $exception->getMessage() . "\n";
29}
30
31try {
32    substr_count("abcde", "abc", $v, 1);
33} catch (ValueError $exception) {
34    echo $exception->getMessage() . "\n";
35}
36
37try {
38    substr_count("abcde", "abc", 1, $v);
39} catch (ValueError $exception) {
40    echo $exception->getMessage() . "\n";
41}
42
43try {
44    strpos("abcde", "abc", $v);
45} catch (ValueError $exception) {
46    echo $exception->getMessage() . "\n";
47}
48
49try {
50    stripos("abcde", "abc", $v);
51} catch (ValueError $exception) {
52    echo $exception->getMessage() . "\n";
53}
54
55try {
56    strrpos("abcde", "abc", $v);
57} catch (ValueError $exception) {
58    echo $exception->getMessage() . "\n";
59}
60
61try {
62    strripos("abcde", "abc", $v);
63} catch (ValueError $exception) {
64    echo $exception->getMessage() . "\n";
65}
66
67try {
68    strripos("abcde", "abc", $v);
69} catch (ValueError $exception) {
70    echo $exception->getMessage() . "\n";
71}
72
73var_dump(strncmp("abcde", "abc", $v));
74var_dump(chunk_split("abcde", $v, "abc"));
75var_dump(substr("abcde", $v, $v));
76
77?>
78--EXPECT--
79string(4) "bcde"
80string(6) "abcdex"
81int(0)
82int(0)
83substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
84substr_compare(): Argument #3 ($offset) must be contained in argument #1 ($main_str)
85stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
86substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
87substr_count(): Argument #4 ($length) must be contained in argument #1 ($haystack)
88strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
89stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
90strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
91strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
92strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
93int(2)
94string(8) "abcdeabc"
95string(0) ""
96