Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Zend/tests/zend_ini/zend_ini_parse_uquantity_overflow.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ $tests = [
'No overflow 007' => ' -1',
'No overflow 008' => '-1 ',
'No overflow 009' => ' -1 ',
'Subject overflow 001' => base_convert(str_repeat('1', PHP_INT_SIZE*8+1), 2, 10),
'Subject overflow 002' => '-'.base_convert(str_repeat('1', PHP_INT_SIZE*8+1), 2, 10),
'Subject overflow 001' => PHP_INT_MAX.'0',
'Subject overflow 002' => PHP_INT_MIN.'0',
'Subject overflow 003' => strval(PHP_INT_MIN),
'Subject overflow 004' => '-2',
'Subject overflow 005' => '-1K',
Expand Down
1 change: 1 addition & 0 deletions ext/standard/math.c
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,7 @@ PHPAPI void _php_math_basetozval(zend_string *str, int base, zval *ret)
num = num * base + c;
break;
} else {
zend_error(E_NOTICE, "Input number exceeds maximum integer value, precision has been lost in conversion");
fnum = (double)num;
mode = 1;
}
Expand Down
38 changes: 37 additions & 1 deletion ext/standard/tests/math/base_convert_basic.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ $values = array(10,
"27",
"39",
"5F",
"3XYZ"
"3XYZ",
"1111111111111111"
);

for ($f= 0; $f < count($frombase); $f++) {
Expand Down Expand Up @@ -57,6 +58,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 0
.........value= 1111111111111111 res = 1111111111111111
......to base is 8
.........value= 10 res = 2

Expand Down Expand Up @@ -84,6 +86,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 0
.........value= 1111111111111111 res = 177777
......to base is 10
.........value= 10 res = 2

Expand Down Expand Up @@ -111,6 +114,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 0
.........value= 1111111111111111 res = 65535
......to base is 16
.........value= 10 res = 2

Expand Down Expand Up @@ -138,6 +142,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 0
.........value= 1111111111111111 res = ffff
......to base is 36
.........value= 10 res = 2

Expand Down Expand Up @@ -165,6 +170,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 0
.........value= 1111111111111111 res = 1ekf

...from base is 8
......to base is 2
Expand All @@ -188,6 +194,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 11
.........value= 1111111111111111 res = 1001001001001001001001001001001001001001001001
......to base is 8
.........value= 10 res = 10
.........value= 27 res = 27
Expand All @@ -209,6 +216,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 1111111111111111
......to base is 10
.........value= 10 res = 8
.........value= 27 res = 23
Expand All @@ -230,6 +238,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 40210710958665
......to base is 16
.........value= 10 res = 8
.........value= 27 res = 17
Expand All @@ -251,6 +260,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 249249249249
......to base is 36
.........value= 10 res = 8
.........value= 27 res = n
Expand All @@ -272,6 +282,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = e94jn3f49

...from base is 10
......to base is 2
Expand All @@ -289,6 +300,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 11
.........value= 1111111111111111 res = 11111100101000110010110111000101010111000111000111
......to base is 8
.........value= 10 res = 12
.........value= 27 res = 33
Expand All @@ -304,6 +316,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 37450626705270707
......to base is 10
.........value= 10 res = 10
.........value= 27 res = 27
Expand All @@ -319,6 +332,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 1111111111111111
......to base is 16
.........value= 10 res = a
.........value= 27 res = 1b
Expand All @@ -334,6 +348,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 3f28cb71571c7
......to base is 36
.........value= 10 res = a
.........value= 27 res = r
Expand All @@ -349,6 +364,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = axutebils7

...from base is 16
......to base is 2
Expand All @@ -364,6 +380,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 11
.........value= 1111111111111111 res = 1000100010001000100010001000100010001000100010001000100010001
......to base is 8
.........value= 10 res = 20
.........value= 27 res = 47
Expand All @@ -377,6 +394,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 104210421042104210421
......to base is 10
.........value= 10 res = 16
.........value= 27 res = 39
Expand All @@ -390,6 +408,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 1229782938247303441
......to base is 16
.........value= 10 res = 10
.........value= 27 res = 27
Expand All @@ -403,6 +422,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 1111111111111111
......to base is 36
.........value= 10 res = g
.........value= 27 res = 13
Expand All @@ -416,6 +436,7 @@ Deprecated: Invalid characters passed for attempted conversion, these have been

Deprecated: Invalid characters passed for attempted conversion, these have been ignored in %s on line %d
.........value= 3XYZ res = 3
.........value= 1111111111111111 res = 9ccxo2jlx3ip

...from base is 36
......to base is 2
Expand All @@ -429,6 +450,9 @@ Deprecated: Invalid characters passed for attempted conversion, these have been
.........value= 39 res = 1110101
.........value= 5F res = 11000011
.........value= 3XYZ res = 101100111010111011

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
.........value= 1111111111111111 res = 1101101010010011001001100101101101110100000000000000000000000000
......to base is 8
.........value= 10 res = 44
.........value= 27 res = 117
Expand All @@ -440,6 +464,9 @@ Deprecated: Invalid characters passed for attempted conversion, these have been
.........value= 39 res = 165
.........value= 5F res = 303
.........value= 3XYZ res = 547273

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
.........value= 1111111111111111 res = 60115552231145556400000000
......to base is 10
.........value= 10 res = 36
.........value= 27 res = 79
Expand All @@ -451,6 +478,9 @@ Deprecated: Invalid characters passed for attempted conversion, these have been
.........value= 39 res = 117
.........value= 5F res = 195
.........value= 3XYZ res = 183995

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
.........value= 1111111111111111 res = 227390317427040000046866
......to base is 16
.........value= 10 res = 24
.........value= 27 res = 4f
Expand All @@ -462,6 +492,9 @@ Deprecated: Invalid characters passed for attempted conversion, these have been
.........value= 39 res = 75
.........value= 5F res = c3
.........value= 3XYZ res = 2cebb

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
.........value= 1111111111111111 res = 3026da93265b74000000
......to base is 36
.........value= 10 res = 10
.........value= 27 res = 27
Expand All @@ -473,3 +506,6 @@ Deprecated: Invalid characters passed for attempted conversion, these have been
.........value= 39 res = 39
.........value= 5F res = 5f
.........value= 3XYZ res = 3xyz

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
.........value= 1111111111111111 res = 11111111111wsws0
8 changes: 7 additions & 1 deletion ext/standard/tests/math/bindec_basiclong_64bit.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,24 @@ foreach ($binLongStrs as $strVal) {
}

?>
--EXPECT--
--EXPECTF--
--- testing: 0111111111111111111111111111111111111111111111111111111111111111 ---
int(9223372036854775807)
--- testing: 1111111111111111111111111111111111111111111111111111111111111111 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(1.8446744073709552E+19)
--- testing: 01111111111111111111111111111111 ---
int(2147483647)
--- testing: 11111111111111111111111111111111 ---
int(4294967295)
--- testing: 01111111111111111111111111111111111111111111111111111111111111111 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(1.8446744073709552E+19)
--- testing: 11111111111111111111111111111111111111111111111111111111111111111 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(3.6893488147419103E+19)
--- testing: 011111111111111111111111111111111 ---
int(4294967295)
Expand Down
8 changes: 7 additions & 1 deletion ext/standard/tests/math/hexdec_basiclong_64bit.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,24 @@ foreach ($hexLongStrs as $strVal) {
}

?>
--EXPECT--
--EXPECTF--
--- testing: 7fffffffffffffff ---
int(9223372036854775807)
--- testing: ffffffffffffffff ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(1.8446744073709552E+19)
--- testing: 7fffffff ---
int(2147483647)
--- testing: ffffffff ---
int(4294967295)
--- testing: 7ffffffffffffffff ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(1.4757395258967641E+20)
--- testing: ffffffffffffffffff ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(4.722366482869645E+21)
--- testing: 7ffffffff ---
int(34359738367)
Expand Down
8 changes: 7 additions & 1 deletion ext/standard/tests/math/octdec_basiclong_64bit.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,24 @@ foreach ($octLongStrs as $strVal) {
}

?>
--EXPECT--
--EXPECTF--
--- testing: 777777777777777777777 ---
int(9223372036854775807)
--- testing: 1777777777777777777777 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(1.8446744073709552E+19)
--- testing: 17777777777 ---
int(2147483647)
--- testing: 37777777777 ---
int(4294967295)
--- testing: 377777777777777777777777 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(2.3611832414348226E+21)
--- testing: 17777777777777777777777777 ---

Notice: Input number exceeds maximum integer value, precision has been lost in conversion in %s on line %d
float(7.555786372591432E+22)
--- testing: 377777777777 ---
int(34359738367)
Expand Down
Loading