summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-02-17 14:12:29 -0800
committerZac Medico <zmedico@gentoo.org>2013-02-17 14:12:29 -0800
commit2074371c6b3196c4158814587c2d996b281a7abf (patch)
tree22f6e768d54b25239e3d73b7800429e04ce9ee7d
parentpreplib: remove for bug #102297 (diff)
downloadportage-2074371c6b3196c4158814587c2d996b281a7abf.tar.gz
portage-2074371c6b3196c4158814587c2d996b281a7abf.tar.bz2
portage-2074371c6b3196c4158814587c2d996b281a7abf.zip
_exec: avoid UnicodeEncodeError for execve args
-rw-r--r--pym/portage/process.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/pym/portage/process.py b/pym/portage/process.py
index 89ebd0553..f00775cf5 100644
--- a/pym/portage/process.py
+++ b/pym/portage/process.py
@@ -387,6 +387,10 @@ def _exec(binary, mycommand, opt_name, fd_pipes, env, gid, groups, uid, umask,
myargs = [opt_name]
myargs.extend(mycommand[1:])
+ # Avoid a potential UnicodeEncodeError from os.execve().
+ myargs = [_unicode_encode(x, encoding=_encodings['fs'],
+ errors='strict') for x in myargs]
+
# Use default signal handlers in order to avoid problems
# killing subprocesses as reported in bug #353239.
signal.signal(signal.SIGINT, signal.SIG_DFL)