diff --git a/Archive/Tar.php b/Archive/Tar.php index 327553b..03daa39 100644 --- a/Archive/Tar.php +++ b/Archive/Tar.php @@ -2115,7 +2115,7 @@ public function _extractList( if ($v_extract_file) { if ($v_header['typeflag'] == "5") { if (!@file_exists($v_header['filename'])) { - if (!@mkdir($v_header['filename'], 0777)) { + if (!@mkdir($v_header['filename'], 0775)) { $this->_error( 'Unable to create directory {' . $v_header['filename'] . '}' @@ -2448,7 +2448,7 @@ public function _dirCheck($p_dir) return false; } - if (!@mkdir($p_dir, 0777)) { + if (!@mkdir($p_dir, 0775)) { $this->_error("Unable to create directory '$p_dir'"); return false; } diff --git a/tests/dir_permissions.phpt b/tests/dir_permissions.phpt new file mode 100644 index 0000000..0826e09 --- /dev/null +++ b/tests/dir_permissions.phpt @@ -0,0 +1,22 @@ +--TEST-- +test permissions of created dirs +--SKIPIF-- +--FILE-- +extract('', true); +$phpunit->assertNoErrors('after'); +echo substr(sprintf('%o', fileperms('dir_permissions')), -4), PHP_EOL; +echo 'tests done'; +?> +--CLEAN-- + +--EXPECT-- +0775 +tests done diff --git a/tests/dir_permissions.tar b/tests/dir_permissions.tar new file mode 100644 index 0000000..d7a10c4 Binary files /dev/null and b/tests/dir_permissions.tar differ