Ansgar pushed to branch master at Debian FTP Team / dak
Commits:
2 changed files:
Changes:
... | ... | @@ -861,7 +861,7 @@ __all__.append('get_or_set_fingerprint') |
861 | 861 |
def get_ldap_name(entry):
|
862 | 862 |
name = []
|
863 | 863 |
for k in ["cn", "mn", "sn"]:
|
864 |
- ret = entry.get(k)
|
|
864 |
+ ret = six.ensure_str(entry.get(k))
|
|
865 | 865 |
if ret and ret[0] != "" and ret[0] != "-":
|
866 | 866 |
name.append(ret[0])
|
867 | 867 |
return " ".join(name)
|
... | ... | @@ -907,7 +907,12 @@ class Keyring(object): |
907 | 907 |
need_fingerprint = False
|
908 | 908 |
|
909 | 909 |
for line_raw in p.stdout:
|
910 |
- line = six.ensure_str(line_raw)
|
|
910 |
+ try:
|
|
911 |
+ line = six.ensure_str(line_raw)
|
|
912 |
+ except UnicodeDecodeError:
|
|
913 |
+ # Some old UIDs might not use UTF-8 encoding. We assume they
|
|
914 |
+ # use latin1.
|
|
915 |
+ line = six.ensure_str(line_raw, encoding='latin1')
|
|
911 | 916 |
field = line.split(":")
|
912 | 917 |
if field[0] == "pub":
|
913 | 918 |
key = field[4]
|
... | ... | @@ -960,11 +965,12 @@ class Keyring(object): |
960 | 965 |
|
961 | 966 |
for i in Attrs:
|
962 | 967 |
entry = i[1]
|
963 |
- uid = entry["uid"][0]
|
|
968 |
+ uid = six.ensure_str(entry["uid"][0])
|
|
964 | 969 |
name = get_ldap_name(entry)
|
965 | 970 |
fingerprints = entry["keyFingerPrint"]
|
966 | 971 |
keyid = None
|
967 | 972 |
for f in fingerprints:
|
973 |
+ f = six.ensure_str(f)
|
|
968 | 974 |
key = self.fpr_lookup.get(f, None)
|
969 | 975 |
if key not in self.keys:
|
970 | 976 |
continue
|
... | ... | @@ -786,7 +786,9 @@ def get_logins_from_ldap(fingerprint='*'): |
786 | 786 |
['uid', 'keyfingerprint'])
|
787 | 787 |
login = {}
|
788 | 788 |
for elem in Attrs:
|
789 |
- login[elem[1]['keyFingerPrint'][0]] = elem[1]['uid'][0]
|
|
789 |
+ fpr = six.ensure_str(elem[1]['keyFingerPrint'][0])
|
|
790 |
+ uid = six.ensure_str(elem[1]['uid'][0])
|
|
791 |
+ login[fpr] = uid
|
|
790 | 792 |
return login
|
791 | 793 |
|
792 | 794 |
################################################################################
|
... | ... | @@ -807,8 +809,9 @@ def get_users_from_ldap(): |
807 | 809 |
name = []
|
808 | 810 |
for k in ('cn', 'mn', 'sn'):
|
809 | 811 |
try:
|
810 |
- if elem[k][0] != '-':
|
|
811 |
- name.append(elem[k][0])
|
|
812 |
+ value = six.ensure_str(elem[k][0])
|
|
813 |
+ if value and value[0] != '-':
|
|
814 |
+ name.append(value)
|
|
812 | 815 |
except KeyError:
|
813 | 816 |
pass
|
814 | 817 |
users[' '.join(name)] = elem['uid'][0]
|