From: Zac Medico Date: Wed, 12 Sep 2012 04:56:39 +0000 (-0700) Subject: make_herd_base: encode unicode file paths safely X-Git-Tag: v2.2.0_alpha126~5 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=5614fa2d7cef0b509136fd00c52a8436d41a3647;p=portage.git make_herd_base: encode unicode file paths safely This will fix cases similar to the one fixed in commit f01d7a8ca158ec60df76a3e8ae5b80ac3f62429e for bug #310789. --- 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: