提交 f2c4736f 编写于 作者: H Helmut Grohne

fix gpg_get_key_addresses

Do not use codecs.decode(s, "unicode_escape"). It has two issues:
 * When being passed a bytes literal, the returned value becomes a str
   and the decoding operation is locale specific on Python3.
 * When passing a unicode literal, it implicitly encodes to
   sys.getdefaultencoding() (locale specific) on Python2.
Thus "unicode_escape" is a bad choice in all cases.

For Python2 string_escape works with str, but it hinders a potential
Python3 port of dak. Use it now, because Python3 is totally broken.
上级 5bf93e8c
......@@ -1381,7 +1381,8 @@ def gpg_get_key_addresses(fingerprint):
except IndexError:
continue
try:
uid = codecs.decode(uid.decode("utf-8"), "unicode_escape")
# Do not use unicode_escape, because it is locale-specific
uid = codecs.decode(uid, "string_escape").decode("utf-8")
except UnicodeDecodeError:
uid = uid.decode("latin1") # does not fail
m = re_parse_maintainer.match(uid)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册