mirror of
https://github.com/php/php-src.git
synced 2024-11-27 11:53:33 +08:00
ValueError for empty path in stream code
Closes GH-5902
This commit is contained in:
parent
f78a091014
commit
c3105a1f8d
@ -33,12 +33,12 @@ $names_arr = array(
|
||||
);
|
||||
|
||||
foreach($names_arr as $key =>$value) {
|
||||
echo "\n-- Filename: $key --\n";
|
||||
try {
|
||||
var_dump(file_get_contents($value));
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
echo "\n-- Filename: $key --\n";
|
||||
try {
|
||||
var_dump(file_get_contents($value));
|
||||
} catch (\TypeError|\ValueError $e) {
|
||||
echo get_class($e) . ': ' . $e->getMessage(), "\n";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@ -56,19 +56,13 @@ Warning: file_get_contents(1): Failed to open stream: No such file or directory
|
||||
bool(false)
|
||||
|
||||
-- Filename: FALSE --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: NULL --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %sfile_get_contents_variation8-win32.php on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: "" --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: " " --
|
||||
|
||||
@ -76,10 +70,10 @@ Warning: file_get_contents( ): Failed to open stream: Permission denied in %s on
|
||||
bool(false)
|
||||
|
||||
-- Filename: \0 --
|
||||
file_get_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
|
||||
-- Filename: array() --
|
||||
file_get_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
|
||||
-- Filename: /no/such/file/dir --
|
||||
|
||||
|
@ -32,12 +32,12 @@ $names_arr = array(
|
||||
);
|
||||
|
||||
for( $i=0; $i<count($names_arr); $i++ ) {
|
||||
echo "-- Iteration $i --\n";
|
||||
try {
|
||||
var_dump(file_get_contents($names_arr[$i]));
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
echo "-- Iteration $i --\n";
|
||||
try {
|
||||
var_dump(file_get_contents($names_arr[$i]));
|
||||
} catch (\TypeError|\ValueError $e) {
|
||||
echo get_class($e) . ': ' . $e->getMessage(), "\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n*** Done ***\n";
|
||||
@ -53,25 +53,19 @@ bool(false)
|
||||
Warning: file_get_contents(1): Failed to open stream: No such file or directory in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 2 --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 3 --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 4 --
|
||||
|
||||
Warning: file_get_contents(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 5 --
|
||||
|
||||
Warning: file_get_contents( ): Failed to open stream: No such file or directory in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 6 --
|
||||
file_get_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
-- Iteration 7 --
|
||||
file_get_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
-- Iteration 8 --
|
||||
|
||||
Warning: file_get_contents(/no/such/file/dir): Failed to open stream: No such file or directory in %s on line %d
|
||||
|
@ -31,44 +31,38 @@ $names_arr = array(
|
||||
);
|
||||
|
||||
foreach($names_arr as $key =>$value) {
|
||||
echo "\n-- Filename: $key --\n";
|
||||
try {
|
||||
$res = file_put_contents($value, "Some data");
|
||||
if ($res !== false && $res != null) {
|
||||
echo "$res bytes written to: $value\n";
|
||||
unlink($value);
|
||||
} else {
|
||||
echo "Failed to write data to: $key\n";
|
||||
echo "\n-- Filename: $key --\n";
|
||||
try {
|
||||
$res = file_put_contents($value, "Some data");
|
||||
if ($res !== false && $res != null) {
|
||||
echo "$res bytes written to: '$value'\n";
|
||||
unlink($value);
|
||||
} else {
|
||||
echo "Failed to write data to: $key\n";
|
||||
}
|
||||
} catch (\TypeError|\ValueError $e) {
|
||||
echo get_class($e) . ': ' . $e->getMessage(), "\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing file_put_contents() : usage variation ***
|
||||
|
||||
-- Filename: -1 --
|
||||
9 bytes written to: -1
|
||||
9 bytes written to: '-1'
|
||||
|
||||
-- Filename: TRUE --
|
||||
9 bytes written to: 1
|
||||
9 bytes written to: '1'
|
||||
|
||||
-- Filename: FALSE --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to: FALSE
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: NULL --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to: NULL
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: "" --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to: ""
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: " " --
|
||||
|
||||
@ -76,10 +70,10 @@ Warning: file_put_contents( ): Failed to open stream: Permission denied in %s on
|
||||
Failed to write data to: " "
|
||||
|
||||
-- Filename: \0 --
|
||||
file_put_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
|
||||
-- Filename: array() --
|
||||
file_put_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
|
||||
-- Filename: /no/such/file/dir --
|
||||
|
||||
|
@ -36,19 +36,18 @@ $names_arr = array(
|
||||
);
|
||||
|
||||
for( $i=0; $i<count($names_arr); $i++ ) {
|
||||
echo "-- Iteration $i --\n";
|
||||
try {
|
||||
$res = file_put_contents($names_arr[$i], "Some data");
|
||||
if ($res !== false && $res != null) {
|
||||
echo "$res bytes written to: $names_arr[$i]\n";
|
||||
unlink($names_arr[$i]);
|
||||
echo "-- Iteration $i --\n";
|
||||
try {
|
||||
$res = file_put_contents($names_arr[$i], "Some data");
|
||||
if ($res !== false && $res != null) {
|
||||
echo "$res bytes written to: '$names_arr[$i]'\n";
|
||||
unlink($names_arr[$i]);
|
||||
} else {
|
||||
echo "Failed to write data to: '$names_arr[$i]'\n";
|
||||
}
|
||||
} catch (\TypeError|\ValueError $e) {
|
||||
echo get_class($e) . ': ' . $e->getMessage(), "\n";
|
||||
}
|
||||
else {
|
||||
echo "Failed to write data to: $names_arr[$i]\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
}
|
||||
rmdir($dir);
|
||||
|
||||
@ -57,34 +56,28 @@ echo "\n*** Done ***\n";
|
||||
--EXPECTF--
|
||||
*** Testing file_put_contents() : usage variation ***
|
||||
-- Iteration 0 --
|
||||
9 bytes written to: -1
|
||||
9 bytes written to: '-1'
|
||||
-- Iteration 1 --
|
||||
9 bytes written to: 1
|
||||
9 bytes written to: '1'
|
||||
-- Iteration 2 --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to:
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 3 --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to:
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 4 --
|
||||
|
||||
Warning: file_put_contents(): Filename cannot be empty in %s on line %d
|
||||
Failed to write data to:
|
||||
ValueError: Path cannot be empty
|
||||
-- Iteration 5 --
|
||||
9 bytes written to:
|
||||
9 bytes written to: ' '
|
||||
-- Iteration 6 --
|
||||
file_put_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, string given
|
||||
-- Iteration 7 --
|
||||
file_put_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, array given
|
||||
-- Iteration 8 --
|
||||
|
||||
Warning: file_put_contents(%sdir): Failed to open stream: %s in %s on line %d
|
||||
Failed to write data to: %sir
|
||||
Failed to write data to: '%sir'
|
||||
-- Iteration 9 --
|
||||
|
||||
Warning: file_put_contents(%sphp): Failed to open stream: %s in %s on line %d
|
||||
Failed to write data to: %sphp
|
||||
Failed to write data to: '%sphp'
|
||||
|
||||
*** Done ***
|
||||
|
@ -8,9 +8,21 @@ echo "*** Test readfile(): error conditions ***\n";
|
||||
|
||||
echo "\n-- Testing readfile() with invalid arguments --\n";
|
||||
// invalid arguments
|
||||
var_dump( readfile(NULL) ); // NULL as $filename
|
||||
var_dump( readfile('') ); // empty string as $filename
|
||||
var_dump( readfile(false) ); // boolean false as $filename
|
||||
try {
|
||||
var_dump( readfile(NULL) ); // NULL as $filename
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
try {
|
||||
var_dump( readfile('') ); // empty string as $filename
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
try {
|
||||
var_dump( readfile(false) ); // boolean false as $filename
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- Testing readfile() with non-existent file --\n";
|
||||
$non_existent_file = __DIR__."/non_existent_file.tmp";
|
||||
@ -22,15 +34,9 @@ echo "Done\n";
|
||||
*** Test readfile(): error conditions ***
|
||||
|
||||
-- Testing readfile() with invalid arguments --
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
|
||||
-- Testing readfile() with non-existent file --
|
||||
|
||||
|
@ -35,11 +35,10 @@ foreach($names_arr as $key => $value) {
|
||||
echo "\n-- Filename: $key --\n";
|
||||
try {
|
||||
readfile($value);
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
} catch (\TypeError|\ValueError $e) {
|
||||
echo get_class($e) . ': ' . $e->getMessage(), "\n";
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
*** Testing readfile() : variation ***
|
||||
@ -53,26 +52,23 @@ Warning: readfile(-1): Failed to open stream: No such file or directory in %s on
|
||||
Warning: readfile(1): Failed to open stream: No such file or directory in %s on line %d
|
||||
|
||||
-- Filename: FALSE --
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: NULL --
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: "" --
|
||||
|
||||
Warning: readfile(): Filename cannot be empty in %s on line %d
|
||||
ValueError: Path cannot be empty
|
||||
|
||||
-- Filename: " " --
|
||||
|
||||
Warning: readfile( ): Failed to open stream: Permission denied in %s on line %d
|
||||
|
||||
-- Filename: \0 --
|
||||
readfile(): Argument #1 ($filename) must be a valid path, string given
|
||||
TypeError: readfile(): Argument #1 ($filename) must be a valid path, string given
|
||||
|
||||
-- Filename: array() --
|
||||
readfile(): Argument #1 ($filename) must be a valid path, array given
|
||||
TypeError: readfile(): Argument #1 ($filename) must be a valid path, array given
|
||||
|
||||
-- Filename: /no/such/file/dir --
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
@ -32,7 +32,11 @@ fclose($handle2);
|
||||
echo "\n*** Testing for error conditions ***\n";
|
||||
|
||||
echo "\n-- No filename --\n";
|
||||
var_dump( sha1_file("") );
|
||||
try {
|
||||
var_dump( sha1_file("") );
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- invalid filename --\n";
|
||||
var_dump( sha1_file("rewncwYcn89q") );
|
||||
@ -41,7 +45,11 @@ echo "\n-- Scalar value as filename --\n";
|
||||
var_dump( sha1_file(12) );
|
||||
|
||||
echo "\n-- NULL as filename --\n";
|
||||
var_dump( sha1_file(NULL) );
|
||||
try {
|
||||
var_dump( sha1_file(NULL) );
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
echo "\n-- Hexadecimal Output for Empty file as Argument --\n";
|
||||
var_dump( sha1_file("EmptyFileSHA1.txt") );
|
||||
@ -66,9 +74,7 @@ unlink("EmptyFileSHA1.txt");
|
||||
*** Testing for error conditions ***
|
||||
|
||||
-- No filename --
|
||||
|
||||
Warning: sha1_file(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
Path cannot be empty
|
||||
|
||||
-- invalid filename --
|
||||
|
||||
@ -81,9 +87,7 @@ Warning: sha1_file(12): Failed to open stream: No such file or directory in %s o
|
||||
bool(false)
|
||||
|
||||
-- NULL as filename --
|
||||
|
||||
Warning: sha1_file(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
Path cannot be empty
|
||||
|
||||
-- Hexadecimal Output for Empty file as Argument --
|
||||
string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
||||
|
@ -12,9 +12,18 @@ tidy_repair_string($s, $l, $l);
|
||||
tidy_repair_string($s, $s, $s);
|
||||
tidy_repair_string($l, $l, $l);
|
||||
|
||||
tidy_repair_file($s, $l, $l, $l);
|
||||
tidy_repair_file($s, $s, $s, $s);
|
||||
tidy_repair_file($l, $l, $l ,$l);
|
||||
try {
|
||||
tidy_repair_file($s, $l, $l, $l);
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
try {
|
||||
tidy_repair_file($s, $s, $s, $s);
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
|
||||
tidy_repair_file($l, $l, $l ,$l); // This doesn't emit any warning, TODO look into
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
@ -28,8 +37,6 @@ Warning: tidy_repair_string(): Could not load configuration file '' in %s on lin
|
||||
Warning: tidy_repair_string(): Could not load configuration file '1' in %s on line %d
|
||||
|
||||
Warning: tidy_repair_string(): Could not set encoding '1' in %s on line %d
|
||||
|
||||
Warning: tidy_repair_file(): Filename cannot be empty in %s on line %d
|
||||
|
||||
Warning: tidy_repair_file(): Filename cannot be empty in %s on line %d
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Done
|
||||
|
@ -25,24 +25,17 @@ $variation = array(
|
||||
|
||||
|
||||
foreach ( $variation as $var ) {
|
||||
var_dump(gzfile( $var , $use_include_path ) );
|
||||
try {
|
||||
var_dump(gzfile( $var , $use_include_path ) );
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: gzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
|
@ -25,24 +25,17 @@ $variation = array(
|
||||
|
||||
|
||||
foreach ( $variation as $var ) {
|
||||
var_dump(readgzfile( $var , $use_include_path ) );
|
||||
try {
|
||||
var_dump(readgzfile( $var , $use_include_path ) );
|
||||
} catch (\ValueError $e) {
|
||||
echo $e->getMessage() . \PHP_EOL;
|
||||
}
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
|
||||
Warning: readgzfile(): Filename cannot be empty in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
Path cannot be empty
|
||||
|
@ -2066,7 +2066,7 @@ PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mod
|
||||
}
|
||||
|
||||
if (!path || !*path) {
|
||||
php_error_docref(NULL, E_WARNING, "Filename cannot be empty");
|
||||
zend_value_error("Path cannot be empty");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user