bignames_overflow.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Phar: tar with huge filenames, buffer overflow
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. --INI--
  6. phar.require_hash=0
  7. --FILE--
  8. <?php
  9. $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.tar';
  10. $fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.tar';
  11. $pname = 'phar://' . $fname;
  12. include dirname(__FILE__) . '/files/make.dangerous.tar.php.inc';
  13. $tar = new danger_tarmaker($fname, 'none');
  14. $tar->init();
  15. $tar->addFile(str_repeat('a', 101), 'hi');
  16. $tar->addFile(str_repeat('a', 255), 'hi2');
  17. $tar->close();
  18. $p1 = new PharData($fname);
  19. foreach ($p1 as $file) {
  20. echo $file->getFileName(), "\n";
  21. }
  22. echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n";
  23. echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n";
  24. ?>
  25. ===DONE===
  26. --CLEAN--
  27. <?php
  28. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.tar');
  29. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.tar');
  30. ?>
  31. --EXPECT--
  32. a
  33. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  34. hi
  35. hi2
  36. ===DONE===