open_basedir_linkinfo.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. Test open_basedir configuration
  3. --SKIPIF--
  4. <?php
  5. if(PHP_OS_FAMILY === "Windows") {
  6. die('skip no symlinks on Windows');
  7. }
  8. ?>
  9. --XFAIL--
  10. BUG: open_basedir cannot delete symlink to prohibited file. See also
  11. bugs 48111 and 52176.
  12. --FILE--
  13. <?php
  14. chdir(__DIR__);
  15. ini_set("open_basedir", ".");
  16. require_once "open_basedir.inc";
  17. $initdir = getcwd();
  18. test_open_basedir_before("linkinfo", FALSE);
  19. chdir($initdir);
  20. $target = ($initdir."/test/bad/bad.txt");
  21. $symlink = ($initdir."/test/ok/symlink.txt");
  22. var_dump(symlink($target, $symlink));
  23. chdir($initdir."/test/ok");
  24. var_dump(linkinfo("symlink.txt"));
  25. var_dump(linkinfo("../ok/symlink.txt"));
  26. var_dump(linkinfo("../ok/./symlink.txt"));
  27. var_dump(linkinfo("./symlink.txt"));
  28. var_dump(linkinfo($initdir."/test/ok/symlink.txt"));
  29. $target = ($initdir."/test/ok/ok.txt");
  30. $symlink = ($initdir."/test/ok/symlink.txt");
  31. var_dump(symlink($target, $symlink));
  32. var_dump(linkinfo($symlink));
  33. var_dump(unlink($symlink));
  34. test_open_basedir_after("linkinfo");
  35. ?>
  36. --CLEAN--
  37. <?php
  38. chdir(__DIR__);
  39. require_once "open_basedir.inc";
  40. delete_directories();
  41. ?>
  42. --EXPECTF--
  43. *** Testing open_basedir configuration [linkinfo] ***
  44. bool(true)
  45. bool(true)
  46. bool(true)
  47. bool(true)
  48. bool(true)
  49. int(%d)
  50. int(%d)
  51. int(%d)
  52. int(%d)
  53. int(%d)
  54. Warning: symlink(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d
  55. bool(false)
  56. int(%d)
  57. bool(true)
  58. *** Finished testing open_basedir configuration [linkinfo] ***