Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- mkdir php-tar-bug
- cd php-tar-bug
- echo 'hello world' > file1
- echo 'hello world' > file2
- tar cf ../php-tar-bug.tar .
- echo 'Listing contents with `tar`:'
- tar tf ../php-tar-bug.tar
- echo ""
- php <<EOF
- <?php
- \$phar = new PharData("../php-tar-bug.tar");
- echo "PHP sees archive contains " . count(\$phar) . " files:\n";
- foreach (\$phar as \$k => \$v) {
- // Loop is not entered!
- echo " -> \$k\n";
- }
- echo "\n";
- try {
- // File is not found! BadMethodCallException
- \$phar["file1"];
- } catch (Exception \$e) {
- echo \$e;
- }
- echo "\n";
- try {
- // File cannot be accessed! (RuntimeException)
- \$phar["./file1"];
- } catch (Exception \$e) {
- echo \$e;
- }
- echo "\n";
- \$phar = new PharData("../php-tar-bug.tar", Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
- // This produces a fatal error!
- foreach (\$phar as \$k => \$v) {}
- EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement