mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.3'
This commit is contained in:
@@ -1885,8 +1885,8 @@ PHP_FUNCTION(fgetcsv)
|
||||
|
||||
if (len_is_null || len == 0) {
|
||||
len = -1;
|
||||
} else if (len < 0) {
|
||||
zend_argument_value_error(2, "must be a greater than or equal to 0");
|
||||
} else if (len < 0 || len > (ZEND_LONG_MAX - 1)) {
|
||||
zend_argument_value_error(2, "must be between 0 and " ZEND_LONG_FMT, (ZEND_LONG_MAX - 1));
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
|
||||
@@ -48,11 +48,11 @@ try {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
fgetcsv() with negative length
|
||||
fgetcsv(): Argument #2 ($length) must be a greater than or equal to 0
|
||||
fgetcsv(): Argument #2 ($length) must be a greater than or equal to 0
|
||||
fgetcsv(): Argument #2 ($length) must be a greater than or equal to 0
|
||||
fgetcsv(): Argument #2 ($length) must be between 0 and %d
|
||||
fgetcsv(): Argument #2 ($length) must be between 0 and %d
|
||||
fgetcsv(): Argument #2 ($length) must be between 0 and %d
|
||||
fgetcsv() with delimiter as empty string
|
||||
fgetcsv(): Argument #3 ($separator) must be a single character
|
||||
fgetcsv() with enclosure as empty string
|
||||
|
||||
22
ext/standard/tests/file/gh15653.phpt
Normal file
22
ext/standard/tests/file/gh15653.phpt
Normal file
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
GH-15653 (fgetcsv overflow on length argument)
|
||||
--FILE--
|
||||
<?php
|
||||
$filename = __DIR__ . "/gh15653.tmp";
|
||||
touch($filename);
|
||||
$fp = fopen ($filename, "r");
|
||||
|
||||
try {
|
||||
fgetcsv($fp, PHP_INT_MAX);
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
}
|
||||
|
||||
fgetcsv($fp, PHP_INT_MAX-1);
|
||||
--CLEAN--
|
||||
<?php
|
||||
@unlink(__DIR__ . "/gh15653.tmp");
|
||||
?>
|
||||
--EXPECTF--
|
||||
fgetcsv(): Argument #2 ($length) must be between 0 and %d
|
||||
%A
|
||||
Reference in New Issue
Block a user