]> granicus.if.org Git - php/commitdiff
* "chmod +x" when extracting archived executable files
authorStig Bakken <ssb@php.net>
Mon, 17 Nov 2003 02:27:23 +0000 (02:27 +0000)
committerStig Bakken <ssb@php.net>
Mon, 17 Nov 2003 02:27:23 +0000 (02:27 +0000)
pear/Archive/Tar.php

index 9176083750d189b09c5099c45355359f333d62f9..2e7848a9d3808bc5daab0c9d854f49a8917a798d 100644 (file)
@@ -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