diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-09-11 21:56:39 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-09-11 21:56:39 -0700 |
commit | 5614fa2d7cef0b509136fd00c52a8436d41a3647 (patch) | |
tree | d8a8b5ab79706b6ae27b0781b0a355d021bcbd76 | |
parent | 62f4f330fc5ed840eba9d32da353afe789e2805b (diff) | |
download | portage-5614fa2d7cef0b509136fd00c52a8436d41a3647.tar.gz portage-5614fa2d7cef0b509136fd00c52a8436d41a3647.tar.bz2 portage-5614fa2d7cef0b509136fd00c52a8436d41a3647.zip |
make_herd_base: encode unicode file paths safely
This will fix cases similar to the one fixed in commit
f01d7a8ca158ec60df76a3e8ae5b80ac3f62429e for bug #310789.
-rw-r--r-- | pym/repoman/herdbase.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pym/repoman/herdbase.py b/pym/repoman/herdbase.py index fcf58b36c..4c420d0ec 100644 --- a/pym/repoman/herdbase.py +++ b/pym/repoman/herdbase.py @@ -17,6 +17,8 @@ except (ImportError, SystemError, RuntimeError, Exception): # modules, so that ImportModulesTestCase can succeed (or # possibly alert us about unexpected import failures). pass + +from portage import _encodings, _unicode_encode from portage.exception import FileNotFound, ParseError, PermissionDenied __all__ = [ @@ -56,7 +58,8 @@ def make_herd_base(filename): all_emails = set() try: - xml_tree = xml.etree.ElementTree.parse(filename, + xml_tree = xml.etree.ElementTree.parse(_unicode_encode(filename, + encoding=_encodings['fs'], errors='strict'), parser=xml.etree.ElementTree.XMLParser( target=_HerdsTreeBuilder())) except ExpatError as e: |