bug64931.phpt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. Bug #64931 (phar_add_file is too restrictive on filename)
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.readonly=0
  7. --FILE--
  8. <?php
  9. echo "Test\n";
  10. @unlink(__DIR__."/bug64931.phar");
  11. $phar = new Phar(__DIR__."/bug64931.phar");
  12. $phar->addFile(__DIR__."/src/.pharignore", ".pharignore");
  13. try {
  14. $phar->addFile(__DIR__."/src/.pharignore", ".phar/gotcha");
  15. } catch (Exception $e) {
  16. echo "CAUGHT: ". $e->getMessage() ."\n";
  17. }
  18. try {
  19. $phar->addFromString(".phar", "gotcha");
  20. } catch (Exception $e) {
  21. echo "CAUGHT: ". $e->getMessage() ."\n";
  22. }
  23. try {
  24. $phar->addFromString(".phar//", "gotcha");
  25. } catch (Exception $e) {
  26. echo "CAUGHT: ". $e->getMessage() ."\n";
  27. }
  28. try {
  29. $phar->addFromString(".phar\\", "gotcha");
  30. } catch (Exception $e) {
  31. echo "CAUGHT: ". $e->getMessage() ."\n";
  32. }
  33. try {
  34. $phar->addFromString(".phar\0", "gotcha");
  35. } catch (ValueError $e) {
  36. echo "CAUGHT: ". $e->getMessage() ."\n";
  37. }
  38. ?>
  39. --CLEAN--
  40. <?php
  41. @unlink(__DIR__."/bug64931.phar");
  42. ?>
  43. --EXPECT--
  44. Test
  45. CAUGHT: Cannot create any files in magic ".phar" directory
  46. CAUGHT: Cannot create any files in magic ".phar" directory
  47. CAUGHT: Cannot create any files in magic ".phar" directory
  48. CAUGHT: Cannot create any files in magic ".phar" directory
  49. CAUGHT: Phar::addFromString(): Argument #1 ($localName) must not contain any null bytes