summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStig Bakken <ssb@php.net>2003-11-17 02:27:23 +0000
committerStig Bakken <ssb@php.net>2003-11-17 02:27:23 +0000
commitc67848319a415103c807695e1da88021590a268a (patch)
tree94a13b7f4b98af073c4e4b77b04b5224328eb075
parent1dbb879bdc3e31ea1b231e0422aa54fa20b4a7a0 (diff)
downloadphp-git-c67848319a415103c807695e1da88021590a268a.tar.gz
* "chmod +x" when extracting archived executable files
-rw-r--r--pear/Archive/Tar.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/pear/Archive/Tar.php b/pear/Archive/Tar.php
index 9176083750..2e7848a9d3 100644
--- a/pear/Archive/Tar.php
+++ b/pear/Archive/Tar.php
@@ -1367,8 +1367,11 @@ class Archive_Tar extends PEAR
// ----- Change the file mode, mtime
@touch($v_header['filename'], $v_header['mtime']);
- // To be completed
- //chmod($v_header[filename], DecOct($v_header[mode]));
+ if ($v_header['mode'] & 0111) {
+ // make file executable, obey umask
+ $mode = fileperms($v_header['filename']) | (~umask() & 0111);
+ @chmod($v_header['filename'], $mode);
+ }
}
// ----- Check the file size