diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-11-22 06:20:17 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-11-22 06:20:17 +0000 |
commit | af7d3ca600800120a07941fe9805db603befa7e4 (patch) | |
tree | ef4ebb0363c055badc45ac4d198e978108f7b015 | |
parent | 4f66169de145c84f3cd854e5ad636484668448f3 (diff) | |
download | portage-af7d3ca600800120a07941fe9805db603befa7e4.tar.gz portage-af7d3ca600800120a07941fe9805db603befa7e4.tar.bz2 portage-af7d3ca600800120a07941fe9805db603befa7e4.zip |
Fix apply_permissions logic for cases where mode is unspecified.
svn path=/main/trunk/; revision=5115
-rw-r--r-- | pym/portage_util.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pym/portage_util.py b/pym/portage_util.py index 4c7e3176f..1e7afe4b6 100644 --- a/pym/portage_util.py +++ b/pym/portage_util.py @@ -558,7 +558,10 @@ def apply_permissions(filename, uid=-1, gid=-1, mode=-1, mask=-1, # bits, so those bits are restored if necessary. if modified and new_mode == -1 and \ (st_mode & stat.S_ISUID or st_mode & stat.S_ISGID): - new_mode = mode & 07777 + if mode == -1: + new_mode = st_mode + elif mode & stat.S_ISUID or mode & stat.S_ISGID: + new_mode = mode & 07777 if not follow_links and stat.S_ISLNK(stat_cached.st_mode): # Mode doesn't matter for symlinks. |