Convert bytes to unicode for exception messages. (trunk r15106)
authorZac Medico <zmedico@gentoo.org>
Thu, 17 Dec 2009 03:30:46 +0000 (03:30 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 17 Dec 2009 03:30:46 +0000 (03:30 -0000)
svn path=/main/branches/2.1.7/; revision=15107

pym/portage/_selinux.py

index 5367afc9c11166d3e701ade401ae4710ad4a5822..e6d44b70bdf924f67ec28b2d93965a22a52a4e5e 100644 (file)
@@ -21,6 +21,7 @@ def copyfile(src, dest):
        dest = _unicode_encode(dest, encoding=_encodings['fs'], errors='strict')
        (rc, ctx) = selinux.lgetfilecon(src)
        if rc < 0:
+               src = _unicode_decode(src, encoding=_encodings['fs'], errors='replace')
                raise OSError(_("copyfile: Failed getting context of \"%s\".") % src)
 
        setfscreate(ctx)
@@ -41,6 +42,8 @@ def mkdir(target, refdir):
        refdir = _unicode_encode(refdir, encoding=_encodings['fs'], errors='strict')
        (rc, ctx) = selinux.getfilecon(refdir)
        if rc < 0:
+               refdir = _unicode_decode(refdir, encoding=_encodings['fs'],
+                       errors='replace')
                raise OSError(
                        _("mkdir: Failed getting context of reference directory \"%s\".") \
                        % refdir)
@@ -56,6 +59,7 @@ def rename(src, dest):
        dest = _unicode_encode(dest, encoding=_encodings['fs'], errors='strict')
        (rc, ctx) = selinux.lgetfilecon(src)
        if rc < 0:
+               src = _unicode_decode(src, encoding=_encodings['fs'], errors='replace')
                raise OSError(_("rename: Failed getting context of \"%s\".") % src)
 
        setfscreate(ctx)
@@ -85,6 +89,8 @@ def setfscreate(ctx="\n"):
        ctx = _unicode_encode(ctx,
                encoding=_encodings['content'], errors='strict')
        if selinux.setfscreatecon(ctx) < 0:
+               ctx = _unicode_decode(ctx,
+                       encoding=_encodings['content'], errors='replace')
                raise OSError(
                        _("setfscreate: Failed setting fs create context \"%s\".") % ctx)
 
@@ -109,6 +115,8 @@ def symlink(target, link, reflnk):
        reflnk = _unicode_encode(reflnk, encoding=_encodings['fs'], errors='strict')
        (rc, ctx) = selinux.lgetfilecon(reflnk)
        if rc < 0:
+               reflnk = _unicode_decode(reflnk, encoding=_encodings['fs'],
+                       errors='replace')
                raise OSError(
                        _("symlink: Failed getting context of reference symlink \"%s\".") \
                        % reflnk)