projects
/
portage.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
af7d3ca
)
Fix bit mask support when preserving S_ISUID and S_ISGID in apply_permissions.
author
Zac Medico
<zmedico@gentoo.org>
Wed, 22 Nov 2006 06:33:31 +0000
(06:33 -0000)
committer
Zac Medico
<zmedico@gentoo.org>
Wed, 22 Nov 2006 06:33:31 +0000
(06:33 -0000)
svn path=/main/trunk/; revision=5116
pym/portage_util.py
patch
|
blob
|
history
diff --git
a/pym/portage_util.py
b/pym/portage_util.py
index 1e7afe4b637f98fa4b27b282f6eca8d17ce6283c..43d4fa8dda1fb9d781135a461862100780fdb895 100644
(file)
--- a/
pym/portage_util.py
+++ b/
pym/portage_util.py
@@
-561,7
+561,12
@@
def apply_permissions(filename, uid=-1, gid=-1, mode=-1, mask=-1,
if mode == -1:
new_mode = st_mode
elif mode & stat.S_ISUID or mode & stat.S_ISGID:
- new_mode = mode & 07777
+ mode = mode & 07777
+ if mask >= 0:
+ new_mode = mode | st_mode
+ new_mode = (mask ^ new_mode) & new_mode
+ else:
+ new_mode = mode
if not follow_links and stat.S_ISLNK(stat_cached.st_mode):
# Mode doesn't matter for symlinks.