summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/util.py')
-rw-r--r--pym/portage/util.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/pym/portage/util.py b/pym/portage/util.py
index f1bff1d40..5b860218d 100644
--- a/pym/portage/util.py
+++ b/pym/portage/util.py
@@ -780,6 +780,11 @@ def apply_recursive_permissions(top, uid=-1, gid=-1,
Returns True if all permissions are applied and False if some are left
unapplied."""
+ if isinstance(top, unicode):
+ # Avoid UnicodeDecodeError raised from
+ # os.path.join when called by os.walk.
+ top = top.encode('utf_8', 'replace')
+
if onerror is None:
# Default behavior is to dump errors to stderr so they won't
# go unnoticed. Callers can pass in a quiet instance.