return;
}
+ if ((expected_type == Z_EXPECTED_PATH || expected_type == Z_EXPECTED_PATH_OR_NULL)
+ && Z_TYPE_P(arg) == IS_STRING) {
+ zend_argument_value_error(num, "must not contain any null bytes");
+ return;
+ }
+
zend_argument_type_error(num, "must be %s, %s given", expected_error[expected_type], zend_zval_type_name(arg));
}
/* }}} */
char **p = va_arg(*va, char **);
size_t *pl = va_arg(*va, size_t *);
if (!zend_parse_arg_path(arg, p, pl, check_null)) {
- zend_spprintf(error, 0, "a valid path%s, %s given",
- check_null ? " or null" : "", zend_zval_type_name(arg)
- );
- return "";
+ if (Z_TYPE_P(arg) == IS_STRING) {
+ zend_spprintf(error, 0, "must not contain any null bytes");
+ return "";
+ } else {
+ return check_null ? "?string" : "string";
+ }
}
}
break;
{
zend_string **str = va_arg(*va, zend_string **);
if (!zend_parse_arg_path_str(arg, str, check_null)) {
- zend_spprintf(error, 0, "a valid path%s, %s given",
- check_null ? " or null" : "", zend_zval_type_name(arg)
- );
- return "";
+ if (Z_TYPE_P(arg) == IS_STRING) {
+ zend_spprintf(error, 0, "must not contain any null bytes");
+ return "";
+ } else {
+ return check_null ? "?string" : "string";
+ }
}
}
break;
if (!zend_parse_arg_object(arg, p, ce, check_null)) {
if (ce) {
if (check_null) {
- zend_spprintf(error, 0, "of type ?%s, %s given", ZSTR_VAL(ce->name), zend_zval_type_name(arg));
+ zend_spprintf(error, 0, "must be of type ?%s, %s given", ZSTR_VAL(ce->name), zend_zval_type_name(arg));
return "";
} else {
return ZSTR_VAL(ce->name);
}
if (ce_base) {
if ((!*pce || !instanceof_function(*pce, ce_base))) {
- zend_spprintf(error, 0, "a class name derived from %s%s, %s given",
+ zend_spprintf(error, 0, "must be a class name derived from %s%s, %s given",
ZSTR_VAL(ce_base->name), check_null ? " or null" : "", Z_STRVAL_P(arg));
*pce = NULL;
return "";
}
}
if (!*pce) {
- zend_spprintf(error, 0, "a valid class name%s, %s given",
+ zend_spprintf(error, 0, "must be a valid class name%s, %s given",
check_null ? " or null" : "", Z_STRVAL_P(arg));
return "";
}
}
if (is_callable_error) {
- zend_spprintf(error, 0, "a valid callback%s, %s", check_null ? " or null" : "", is_callable_error);
+ zend_spprintf(error, 0, "must be a valid callback%s, %s", check_null ? " or null" : "", is_callable_error);
efree(is_callable_error);
return "";
} else {
}
if (!(flags & ZEND_PARSE_PARAMS_QUIET) && (*expected_type || error)) {
if (error) {
- zend_argument_type_error(arg_num, "must be %s", error);
+ if (strcmp(error, "must not contain any null bytes") == 0) {
+ zend_argument_value_error(arg_num, "%s", error);
+ } else {
+ zend_argument_type_error(arg_num, "%s", error);
+ }
efree(error);
} else {
zend_argument_type_error(arg_num, "must be of type %s, %s given", expected_type, zend_zval_type_name(arg));
_(Z_EXPECTED_FUNC_OR_NULL, "a valid callback or null") \
_(Z_EXPECTED_RESOURCE, "of type resource") \
_(Z_EXPECTED_RESOURCE_OR_NULL, "of type resource or null") \
- _(Z_EXPECTED_PATH, "a valid path") \
- _(Z_EXPECTED_PATH_OR_NULL, "a valid path or null") \
+ _(Z_EXPECTED_PATH, "of type string") \
+ _(Z_EXPECTED_PATH_OR_NULL, "of type ?string") \
_(Z_EXPECTED_OBJECT, "of type object") \
_(Z_EXPECTED_OBJECT_OR_NULL, "of type ?object") \
_(Z_EXPECTED_DOUBLE, "of type float") \
CURLcode error = CURLE_OK;
if (strlen(str) != len) {
- zend_type_error("%s(): cURL option cannot contain any null-bytes", get_active_function_name());
+ zend_value_error("%s(): cURL option must not contain any null bytes", get_active_function_name());
return FAILURE;
}
try {
curl_setopt($ch, CURLOPT_URL, $url);
-} catch (TypeError $exception) {
+} catch (ValueError $exception) {
echo $exception->getMessage() . "\n";
}
?>
Done
--EXPECT--
-curl_setopt(): cURL option cannot contain any null-bytes
+curl_setopt(): cURL option must not contain any null bytes
Done
}
if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
- zend_argument_type_error(1, "cannot contain any null-bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
}
if (CHECK_NULL_PATH(Z_STRVAL_P(stream), Z_STRLEN_P(stream))) {
- zend_argument_type_error(1, "cannot contain any null-bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
try {
exif_read_data("foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
try {
exif_thumbnail("foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
--EXPECT--
exif_read_data(): Argument #1 ($filename) cannot be empty
exif_thumbnail(): Argument #1 ($filename) cannot be empty
-exif_read_data(): Argument #1 ($filename) cannot contain any null-bytes
-exif_thumbnail(): Argument #1 ($filename) cannot contain any null-bytes
+exif_read_data(): Argument #1 ($filename) must not contain any null bytes
+exif_thumbnail(): Argument #1 ($filename) must not contain any null bytes
try {
var_dump(finfo_open(FILEINFO_MIME, "\0"));
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
-finfo_open(): Argument #2 ($arg) must be a valid path, string given
+finfo_open(): Argument #2 ($arg) must not contain any null bytes
resource(%d) of type (file_info)
resource(%d) of type (file_info)
$image = imagecreate(1,1);// 1px image
try {
imagegd($image, "./foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
-imagegd(): Argument #2 ($to) must be a valid path, string given
+imagegd(): Argument #2 ($to) must not contain any null bytes
$image = imagecreate(1,1);// 1px image
try {
imagegd($image, "./foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
-imagegd(): Argument #2 ($to) must be a valid path, string given
+imagegd(): Argument #2 ($to) must not contain any null bytes
$image = imagecreate(1,1);// 1px image
try {
imagexbm($image, "./foo\0bar");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
-imagexbm(): Argument #2 ($filename) must be a valid path or null, string given
+imagexbm(): Argument #2 ($filename) must not contain any null bytes
}
if (isfilename) {
if (CHECK_NULL_PATH(data, data_len)) {
- zend_argument_type_error(1, "must be a valid path");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
stream = php_stream_open_wrapper_ex(data, "rb", REPORT_ERRORS, NULL, FG(default_context));
if (isfilename) {
if (CHECK_NULL_PATH(data, data_len)) {
- zend_argument_type_error(2, "must be a valid path");
+ zend_argument_value_error(2, "must not contain any null bytes");
RETURN_THROWS();
}
stream = php_stream_open_wrapper_ex(data, "rb", REPORT_ERRORS, NULL, FG(default_context));
try {
var_dump(hash_hmac_file('md5', $file.chr(0).$file, $key, TRUE));
}
-catch (TypeError $e) {
+catch (ValueError $e) {
echo $e->getMessage() . "\n";
}
hash_hmac_file(): Argument #1 ($algo) must be a valid cryptographic hashing algorithm
-- Testing hash_hmac_file() function with bad path --
-hash_hmac_file(): Argument #2 ($data) must be a valid path
+hash_hmac_file(): Argument #2 ($data) must not contain any null bytes
?>
--EXPECTF--
Phar::mungServer(): Argument #1 ($munglist) must be of type array, string given
-Phar::createDefaultStub(): Argument #1 ($index) must be a valid path or null, array given
-Phar::loadPhar(): Argument #1 ($filename) must be a valid path, array given
+Phar::createDefaultStub(): Argument #1 ($index) must be of type ?string, array given
+Phar::loadPhar(): Argument #1 ($filename) must be of type string, array given
Phar::canCompress(): Argument #1 ($method) must be of type int, string given
-Phar::__construct(): Argument #1 ($filename) must be a valid path, array given
+Phar::__construct(): Argument #1 ($filename) must be of type string, array given
Phar::convertToExecutable(): Argument #1 ($format) must be of type int, array given
Phar::convertToData(): Argument #1 ($format) must be of type int, array given
-PharData::delete(): Argument #1 ($entry) must be a valid path, array given
+PharData::delete(): Argument #1 ($entry) must be of type string, array given
Cannot write out phar archive, phar is read-only
Entry oops does not exist and cannot be deleted
%sfrontcontroller10.phar
Phar is readonly, cannot change compression
Phar::copy() expects exactly 2 parameters, 1 given
Cannot copy "a" to "b", phar is read-only
-Phar::offsetExists(): Argument #1 ($entry) must be a valid path, array given
-Phar::offsetGet(): Argument #1 ($entry) must be a valid path, array given
+Phar::offsetExists(): Argument #1 ($entry) must be of type string, array given
+Phar::offsetGet(): Argument #1 ($entry) must be of type string, array given
Phar::offsetSet() expects exactly 2 parameters, 1 given
-PharData::offsetUnset(): Argument #1 ($entry) must be a valid path, array given
+PharData::offsetUnset(): Argument #1 ($entry) must be of type string, array given
Write operations disabled by the php.ini setting phar.readonly
-Phar::addEmptyDir(): Argument #1 ($dirname) must be a valid path, array given
-Phar::addFile(): Argument #1 ($filename) must be a valid path, array given
+Phar::addEmptyDir(): Argument #1 ($dirname) must be of type string, array given
+Phar::addFile(): Argument #1 ($filename) must be of type string, array given
Phar::addFromString() expects exactly 2 parameters, 1 given
Write operations disabled by the php.ini setting phar.readonly
Phar::setMetadata() expects exactly 1 parameter, 2 given
try {
$phar->addFromString(".phar\0", "gotcha");
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo "CAUGHT: ". $e->getMessage() ."\n";
}
CAUGHT: Cannot create any files in magic ".phar" directory
CAUGHT: Cannot create any files in magic ".phar" directory
CAUGHT: Cannot create any files in magic ".phar" directory
-CAUGHT: Phar::addFromString(): Argument #1 ($localname) must be a valid path, string given
+CAUGHT: Phar::addFromString(): Argument #1 ($localname) must not contain any null bytes
{
$phar[$check] = 'error';
}
- catch (TypeError $e)
+ catch (ValueError $e)
{
echo 'Exception: ' . $e->getMessage() . "\n";
}
11:Error: file_put_contents(phar://%s): Failed to open stream: phar error: invalid path "%s" contains illegal character
12:Error: file_put_contents(phar://%s): Failed to open stream: phar error: invalid path "%s" contains illegal character
13:Error: file_put_contents(phar://%s): Failed to open stream: phar error: invalid path "%s" contains illegal character
-Exception: Phar::offsetSet(): Argument #1 ($entry) must be a valid path, string given
+Exception: Phar::offsetSet(): Argument #1 ($entry) must not contain any null bytes
<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
<?php unlink(__DIR__ . '/fgc_edgecases.txt'); ?>
--EXPECTF--
-file_get_contents(): Argument #1 ($filename) must be a valid path, array given
+file_get_contents(): Argument #1 ($filename) must be of type string, array given
blah
<?php
echo file_get_contents("foo/" . basename(__FILE__));
<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
<?php unlink(__DIR__ . '/fopen_edgecases2.txt'); ?>
--EXPECTF--
-fopen(): Argument #1 ($filename) must be a valid path, array given
+fopen(): Argument #1 ($filename) must be of type string, array given
blah
test
<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
<?php rmdir(__DIR__ . '/opendir_edgecases');
--EXPECTF--
-opendir(): Argument #1 ($path) must be a valid path, array given
+opendir(): Argument #1 ($path) must be of type string, array given
.
..
foo
string(3) "hi2"
bool(false)
Phar::extractTo(): Argument #2 ($files) must be of type array|string|null, stdClass given
-Phar::extractTo(): Argument #1 ($pathto) must be a valid path, array given
+Phar::extractTo(): Argument #1 ($pathto) must be of type string, array given
Invalid argument, extraction path must be non-zero length
Unable to use path "%soops" for extraction, it is a file, must be a directory
Invalid argument, array of filenames to extract contains non-string value
Unknown phar archive ""
Unknown phar archive "%sphar_unlinkarchive.phar"
Unknown phar archive "%sphar_unlinkarchive.phar.tar": internal corruption of phar "%sphar_unlinkarchive.phar.tar" (truncated entry)
-Phar::unlinkArchive(): Argument #1 ($archive) must be a valid path, array given
+Phar::unlinkArchive(): Argument #1 ($archive) must be of type string, array given
bool(false)
string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>"
phar archive "%sphar_unlinkarchive.phar" has open file handles or objects. fclose() all file handles, and unset() all objects prior to calling unlinkArchive()
<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
--EXPECTF--
Cannot open phar file 'phar://%spharfileinfo_construct.phar/oops': internal corruption of phar "%spharfileinfo_construct.phar" (truncated entry)
-PharFileInfo::__construct(): Argument #1 ($filename) must be a valid path, array given
+PharFileInfo::__construct(): Argument #1 ($filename) must be of type string, array given
Cannot access phar file entry '%s' in archive '%s'
Cannot call constructor twice
'%s' is not a valid phar archive URL (must have at least phar://filename.phar)
$dir->isFile();
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: DirectoryIterator::__construct(): Argument #1 ($path) must be a valid path, string given in %s:%d
+Fatal error: Uncaught ValueError: DirectoryIterator::__construct(): Argument #1 ($path) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): DirectoryIterator->__construct('\x00/abc')
#1 {main}
new SplFileInfo("bad\0good");
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: SplFileInfo::__construct(): Argument #1 ($file_name) must be a valid path, string given in %s:%d
+Fatal error: Uncaught ValueError: SplFileInfo::__construct(): Argument #1 ($file_name) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): SplFileInfo->__construct('bad\x00good')
#1 {main}
}
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: DirectoryIterator::__construct(): Argument #1 ($path) must be a valid path, string given in %s:%d
+Fatal error: Uncaught ValueError: DirectoryIterator::__construct(): Argument #1 ($path) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): DirectoryIterator->__construct('%s')
#1 {main}
RETURN_THROWS();
}
if (strlen(cmd) != cmd_len) {
- zend_argument_type_error(1, "must not contain any null bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
if (command_len) {
if (command_len != strlen(command)) {
- zend_argument_type_error(1, "must not contain any null bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
RETVAL_STR(php_escape_shell_cmd(command));
ZEND_PARSE_PARAMETERS_END();
if (argument_len != strlen(argument)) {
- zend_argument_type_error(1, "must not contain any null bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
RETURN_THROWS();
}
if (strlen(command) != command_len) {
- zend_argument_type_error(1, "must not contain any null bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
ZEND_PARSE_PARAMETERS_END();
if (mode == FROM_PATH && CHECK_NULL_PATH(input, input_len)) {
- zend_argument_type_error(1, "must not contain any null bytes");
+ zend_argument_value_error(1, "must not contain any null bytes");
RETURN_THROWS();
}
try {
var_dump(file_exists($filename));
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
-file_exists(): Argument #1 ($filename) must be a valid path, string given
+file_exists(): Argument #1 ($filename) must not contain any null bytes
echo "\n-- Iteration $count --\n";
try {
var_dump( disk_free_space( $dir1 ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump( diskfreespace( $dir1 ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$count++;
float(%f)
-- Iteration 9 --
-disk_free_space(): Argument #1 ($directory) must be a valid path, string given
-diskfreespace(): Argument #1 ($directory) must be a valid path, string given
+disk_free_space(): Argument #1 ($directory) must not contain any null bytes
+diskfreespace(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 10 --
-disk_free_space(): Argument #1 ($directory) must be a valid path, string given
-diskfreespace(): Argument #1 ($directory) must be a valid path, string given
+disk_free_space(): Argument #1 ($directory) must not contain any null bytes
+diskfreespace(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 11 --
-disk_free_space(): Argument #1 ($directory) must be a valid path, string given
-diskfreespace(): Argument #1 ($directory) must be a valid path, string given
+disk_free_space(): Argument #1 ($directory) must not contain any null bytes
+diskfreespace(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 12 --
-disk_free_space(): Argument #1 ($directory) must be a valid path, string given
-diskfreespace(): Argument #1 ($directory) must be a valid path, string given
+disk_free_space(): Argument #1 ($directory) must not contain any null bytes
+diskfreespace(): Argument #1 ($directory) must not contain any null bytes
--- Done ---
echo "\n-- Iteration $count --\n";
try {
var_dump( disk_total_space( $dir1 ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$count++;
float(%f)
-- Iteration 9 --
-disk_total_space(): Argument #1 ($directory) must be a valid path, string given
+disk_total_space(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 10 --
-disk_total_space(): Argument #1 ($directory) must be a valid path, string given
+disk_total_space(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 11 --
-disk_total_space(): Argument #1 ($directory) must be a valid path, string given
+disk_total_space(): Argument #1 ($directory) must not contain any null bytes
-- Iteration 12 --
-disk_total_space(): Argument #1 ($directory) must be a valid path, string given
+disk_total_space(): Argument #1 ($directory) must not contain any null bytes
*** Testing with Binary Input ***
float(%s)
bool(false)
-- Filename: \0 --
-TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, string given
+ValueError: file_get_contents(): Argument #1 ($filename) must not contain any null bytes
-- Filename: array() --
-TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, array given
+TypeError: file_get_contents(): Argument #1 ($filename) must be of type string, array given
-- Filename: /no/such/file/dir --
Warning: file_get_contents( ): Failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 6 --
-TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, string given
+ValueError: file_get_contents(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 7 --
-TypeError: file_get_contents(): Argument #1 ($filename) must be a valid path, array given
+TypeError: file_get_contents(): Argument #1 ($filename) must be of type string, 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
Failed to write data to: " "
-- Filename: \0 --
-TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, string given
+ValueError: file_put_contents(): Argument #1 ($filename) must not contain any null bytes
-- Filename: array() --
-TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, array given
+TypeError: file_put_contents(): Argument #1 ($filename) must be of type string, array given
-- Filename: /no/such/file/dir --
-- Iteration 5 --
9 bytes written to: ' '
-- Iteration 6 --
-TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, string given
+ValueError: file_put_contents(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 7 --
-TypeError: file_put_contents(): Argument #1 ($filename) must be a valid path, array given
+TypeError: file_put_contents(): Argument #1 ($filename) must be of type string, array given
-- Iteration 8 --
Warning: file_put_contents(%sdir): Failed to open stream: %s in %s on line %d
echo "- Iteration $count -\n";
try {
var_dump( filegroup( $file_path."/".$file ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
clearstatcache();
Warning: filegroup(): stat failed for %s/filegroup_variation3/filegroup*.tmp in %s on line %d
bool(false)
- Iteration 7 -
-filegroup(): Argument #1 ($filename) must be a valid path, string given
+filegroup(): Argument #1 ($filename) must not contain any null bytes
- Iteration 8 -
-filegroup(): Argument #1 ($filename) must be a valid path, string given
+filegroup(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "- Iteration $count -\n";
try {
var_dump( fileinode( $file_path."/".$file ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
clearstatcache();
Warning: fileinode(): stat failed for %s/fileinode_variation3/fileinode*.tmp in %s on line %d
bool(false)
- Iteration 7 -
-fileinode(): Argument #1 ($filename) must be a valid path, string given
+fileinode(): Argument #1 ($filename) must not contain any null bytes
- Iteration 8 -
-fileinode(): Argument #1 ($filename) must be a valid path, string given
+fileinode(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "- Iteration $count -\n";
try {
var_dump( fileowner( $file_path."/".$file ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
clearstatcache();
Warning: fileowner(): stat failed for %s/fileowner_variation3/fileowner*.tmp in %s on line %d
bool(false)
- Iteration 7 -
-fileowner(): Argument #1 ($filename) must be a valid path, string given
+fileowner(): Argument #1 ($filename) must not contain any null bytes
- Iteration 8 -
-fileowner(): Argument #1 ($filename) must be a valid path, string given
+fileowner(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "- Iteration $count -\n";
try {
var_dump( fileperms( $file_path."/".$file ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
clearstatcache();
Warning: fileperms(): stat failed for %s/fileperms_variation3/fileperms*.tmp in %s on line %d
bool(false)
- Iteration 7 -
-fileperms(): Argument #1 ($filename) must be a valid path, string given
+fileperms(): Argument #1 ($filename) must not contain any null bytes
- Iteration 8 -
-fileperms(): Argument #1 ($filename) must be a valid path, string given
+fileperms(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "-- Iteration $i --\n";
try {
var_dump( fnmatch($pattern_arr[$i], $file_name) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
}
for( $j = 0; $j<count($string); $j++ ) {
try {
var_dump( fnmatch($pattern[$i], $string[$j]) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
}
-- Iteration 22 --
bool(false)
-- Iteration 23 --
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 24 --
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 25 --
bool(false)
-- Iteration 26 --
--- With Strings ---
-- Iteration 0 --
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(true)
-- Iteration 1 --
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 2 --
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(true)
-- Iteration 3 --
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 4 --
bool(false)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(true)
bool(false)
-- Iteration 5 --
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(false)
-- Iteration 1 --
bool(true)
bool(true)
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(false)
-- Iteration 2 --
bool(true)
bool(true)
bool(true)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(false)
-- Iteration 3 --
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
-fnmatch(): Argument #1 ($pattern) must be a valid path, string given
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
+fnmatch(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 4 --
bool(false)
bool(false)
bool(false)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(true)
bool(false)
-- Iteration 5 --
bool(false)
bool(false)
bool(false)
-fnmatch(): Argument #2 ($filename) must be a valid path, string given
+fnmatch(): Argument #2 ($filename) must not contain any null bytes
bool(false)
bool(true)
var_dump( glob($pattern, GLOB_NOCHECK) );
var_dump( glob($pattern, GLOB_NOESCAPE) );
var_dump( glob($pattern, GLOB_ERR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
echo "-- Iteration $counter --\n";
try {
var_dump( glob($pattern, GLOB_ONLYDIR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
array(0) {
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
}
var_dump( glob($pattern, GLOB_NOCHECK) );
var_dump( glob($pattern, GLOB_NOESCAPE) );
var_dump( glob($pattern, GLOB_ERR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
echo "-- Iteration $counter --\n";
try {
var_dump( glob($pattern, GLOB_ONLYDIR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
array(0) {
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
}
var_dump( glob($pattern, GLOB_NOCHECK) );
var_dump( glob($pattern, GLOB_NOESCAPE) );
var_dump( glob($pattern, GLOB_ERR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
echo "-- Iteration $counter --\n";
try {
var_dump( glob($pattern, GLOB_ONLYDIR) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
array(0) {
}
-- Iteration 8 --
-glob(): Argument #1 ($pattern) must be a valid path, string given
+glob(): Argument #1 ($pattern) must not contain any null bytes
-- Iteration 9 --
array(0) {
}
echo "\n-- Iteration $count --\n";
try {
var_dump( is_dir($file_path."/".$dir ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$count++;
bool(false)
-- Iteration 9 --
-is_dir(): Argument #1 ($filename) must be a valid path, string given
+is_dir(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 10 --
-is_dir(): Argument #1 ($filename) must be a valid path, string given
+is_dir(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "-- Iteration $counter --\n";
try {
var_dump( is_executable($file) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
-- Iteration 5 --
bool(false)
-- Iteration 6 --
-is_executable(): Argument #1 ($filename) must be a valid path, string given
+is_executable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 7 --
-is_executable(): Argument #1 ($filename) must be a valid path, string given
+is_executable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 8 --
bool(false)
-- Iteration 9 --
echo "- Iteration $count -\n";
try {
var_dump( is_file( $file_path."/".$file ) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
clearstatcache();
- Iteration 6 -
bool(false)
- Iteration 7 -
-is_file(): Argument #1 ($filename) must be a valid path, string given
+is_file(): Argument #1 ($filename) must not contain any null bytes
- Iteration 8 -
-is_file(): Argument #1 ($filename) must be a valid path, string given
+is_file(): Argument #1 ($filename) must not contain any null bytes
*** Done ***
echo "-- Iteration $counter --\n";
try {
var_dump( is_readable($file) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
-- Iteration 6 --
bool(false)
-- Iteration 7 --
-is_readable(): Argument #1 ($filename) must be a valid path, string given
+is_readable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 8 --
-is_readable(): Argument #1 ($filename) must be a valid path, string given
+is_readable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 9 --
-is_readable(): Argument #1 ($filename) must be a valid path, string given
+is_readable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 10 --
bool(true)
-- Iteration 11 --
echo "-- Iteration $counter --\n";
try {
var_dump( is_writable($file) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump( is_writeable($file) );
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
}
$counter++;
bool(false)
bool(false)
-- Iteration 7 --
-is_writable(): Argument #1 ($filename) must be a valid path, string given
-is_writeable(): Argument #1 ($filename) must be a valid path, string given
+is_writable(): Argument #1 ($filename) must not contain any null bytes
+is_writeable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 8 --
-is_writable(): Argument #1 ($filename) must be a valid path, string given
-is_writeable(): Argument #1 ($filename) must be a valid path, string given
+is_writable(): Argument #1 ($filename) must not contain any null bytes
+is_writeable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 9 --
-is_writable(): Argument #1 ($filename) must be a valid path, string given
-is_writeable(): Argument #1 ($filename) must be a valid path, string given
+is_writable(): Argument #1 ($filename) must not contain any null bytes
+is_writeable(): Argument #1 ($filename) must not contain any null bytes
-- Iteration 10 --
bool(true)
bool(true)
echo "\n*** Testing mkdir() and rmdir() for binary safe functionality ***\n";
try {
var_dump( mkdir("$file_path/temp".chr(0)."/") );
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump( rmdir("$file_path/temp".chr(0)."/") );
-} catch (TypeError $e) {
+} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
bool(false)
*** Testing mkdir() and rmdir() for binary safe functionality ***
-mkdir(): Argument #1 ($pathname) must be a valid path, string given
-rmdir(): Argument #1 ($dirname) must be a valid path, string given
+mkdir(): Argument #1 ($pathname) must not contain any null bytes
+rmdir(): Argument #1 ($dirname) must not contain any null bytes
*** Testing mkdir() with miscellaneous input ***
bool(true)
Warning: readfile( ): Failed to open stream: Permission denied in %s on line %d
-- Filename: \0 --
-TypeError: readfile(): Argument #1 ($filename) must be a valid path, string given
+ValueError: readfile(): Argument #1 ($filename) must not contain any null bytes
-- Filename: array() --
-TypeError: readfile(): Argument #1 ($filename) must be a valid path, array given
+TypeError: readfile(): Argument #1 ($filename) must be of type string, array given
-- Filename: /no/such/file/dir --
{
try {
var_dump(file_get_contents($stream));
- } catch (TypeError $e) {
+ } catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
}
?>
--EXPECTF--
-file_get_contents(): Argument #1 ($filename) must be a valid path, string given
-file_get_contents(): Argument #1 ($filename) must be a valid path, string given
+file_get_contents(): Argument #1 ($filename) must not contain any null bytes
+file_get_contents(): Argument #1 ($filename) must not contain any null bytes
Warning: file_get_contents(data:;base64,#Zm9vYmFyIGZvb2Jhcg==): Failed to open stream: rfc2397: unable to decode in %sstream_rfc2397_006.php on line %d
bool(false)
echo "-- Iteration $i --\n";
try {
$file_name = tempnam($file_path, $names_arr[$i]);
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
continue;
}
Failed, not created in the correct directory %s vs %s
0
-- Iteration 6 --
-tempnam(): Argument #2 ($prefix) must be a valid path, string given
+tempnam(): Argument #2 ($prefix) must not contain any null bytes
-- Iteration 7 --
-tempnam(): Argument #2 ($prefix) must be a valid path, array given
+tempnam(): Argument #2 ($prefix) must be of type string, array given
-- Iteration 8 --
OK
-- Iteration 9 --
echo "-- Iteration $i --\n";
try {
$file_name = tempnam("$file_path", $names_arr[$i]);
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
continue;
}
File permissions are => 100600
File created in => directory specified
-- Iteration 6 --
-tempnam(): Argument #2 ($prefix) must be a valid path, string given
+tempnam(): Argument #2 ($prefix) must not contain any null bytes
-- Iteration 7 --
-tempnam(): Argument #2 ($prefix) must be a valid path, array given
+tempnam(): Argument #2 ($prefix) must be of type string, array given
-- Iteration 8 --
File name is => %s/dir%s
File permissions are => 100600
echo "-- Iteration $i --\n";
try {
$file_name = tempnam($names_arr[$i], "tempnam_variation3.tmp");
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
continue;
}
File permissions are => 100666
File created in => temp dir
-- Iteration 6 --
-tempnam(): Argument #1 ($dir) must be a valid path, string given
+tempnam(): Argument #1 ($dir) must not contain any null bytes
-- Iteration 7 --
-tempnam(): Argument #1 ($dir) must be a valid path, array given
+tempnam(): Argument #1 ($dir) must be of type string, array given
-- Iteration 8 --
Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7-win32.php on line %d
echo "-- Iteration $i --\n";
try {
$file_name = tempnam($names_arr[$i], "tempnam_variation3.tmp");
- } catch (TypeError $e) {
+ } catch (Error $e) {
echo $e->getMessage(), "\n";
continue;
}
File permissions are => 100600
File created in => temp dir
-- Iteration 6 --
-tempnam(): Argument #1 ($dir) must be a valid path, string given
+tempnam(): Argument #1 ($dir) must not contain any null bytes
-- Iteration 7 --
-tempnam(): Argument #1 ($dir) must be a valid path, array given
+tempnam(): Argument #1 ($dir) must be of type string, array given
-- Iteration 8 --
Notice: tempnam(): file created in the system's temporary directory in %stempnam_variation7.php on line %d
var_dump(file_exists(__DIR__ . '/bug78862.link'));
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: link(): Argument #1 ($target) must be a valid path, string given in %s:%d
+Fatal error: Uncaught ValueError: link(): Argument #1 ($target) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): link('%s', '%s')
#1 {main}
?>
===DONE===
--EXPECTF--
-Fatal error: Uncaught TypeError: escapeshellarg(): Argument #1 ($arg) must not contain any null bytes in %s:%d
+Fatal error: Uncaught ValueError: escapeshellarg(): Argument #1 ($arg) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): escapeshellarg('hello\x00world')
#1 {main}
?>
===DONE===
--EXPECTF--
-Fatal error: Uncaught TypeError: escapeshellcmd(): Argument #1 ($command) must not contain any null bytes in %s:%d
+Fatal error: Uncaught ValueError: escapeshellcmd(): Argument #1 ($command) must not contain any null bytes in %s:%d
Stack trace:
#0 %s(%d): escapeshellcmd('hello\x00world')
#1 {main}
var_dump(getimagesize("/tmp/a.png\0xx"));
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: getimagesize(): Argument #1 ($image_path) must not contain any null bytes in %s:%d
+Fatal error: Uncaught ValueError: getimagesize(): Argument #1 ($image_path) must not contain any null bytes in %s:%d
Stack trace:
-%a
+#0 %s(%d): getimagesize('/tmp/a.png\x00xx')
+#1 {main}
+ thrown in %s on line %d
$cmd = "echo abc\n\0command";
try {
var_dump(exec($cmd, $output));
-} catch (\TypeError $e) {
+} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(system($cmd, $output));
-} catch (\TypeError $e) {
+} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(passthru($cmd, $output));
-} catch (\TypeError $e) {
+} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
?>