diff options
Diffstat (limited to 'dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch')
-rw-r--r-- | dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch b/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch new file mode 100644 index 000000000000..ff4519bb0cd2 --- /dev/null +++ b/dev-python/pyldap/files/pyldap-2.4.20-bytes_string-backport.patch @@ -0,0 +1,49 @@ +From 6e9e1902f33bff8ea179dc32ce4d2aa71b3335de Mon Sep 17 00:00:00 2001 +From: Petr Viktorin <pviktori@redhat.com> +Date: Fri, 2 Oct 2015 14:06:12 +0200 +Subject: [PATCH] Fix sasl string/bytes mismatch +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The SASL mechanism and response are always bytes; encode them if necessary. + +Based on patch by Michael Šimáček: https://github.com/pyldap/pyldap/pull/20 +--- + Lib/ldap/sasl.py | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/Lib/ldap/sasl.py b/Lib/ldap/sasl.py +index 1158671..de38393 100644 +--- a/Lib/ldap/sasl.py ++++ b/Lib/ldap/sasl.py +@@ -46,6 +46,8 @@ def __init__(self,cb_value_dict,mech): + SASL callback id's. The mech argument is a string that specifies + the SASL mechaninsm to be uesd.""" + self.cb_value_dict = cb_value_dict or {} ++ if not isinstance(mech, bytes): ++ mech = mech.encode('utf-8') + self.mech = mech + + def callback(self,cb_id,challenge,prompt,defresult): +@@ -62,7 +64,10 @@ def callback(self,cb_id,challenge,prompt,defresult): + cb_value_dictionary. Note that the current callback interface is not very + useful for writing generic sasl GUIs, which would need to know all + the questions to ask, before the answers are returned to the sasl +- lib (in contrast to one question at a time).""" ++ lib (in contrast to one question at a time). ++ ++ Unicode strings are always converted to bytes. ++ """ + + # The following print command might be useful for debugging + # new sasl mechanisms. So it is left here +@@ -72,6 +77,8 @@ def callback(self,cb_id,challenge,prompt,defresult): + _trace_file.write("*** id=%d, challenge=%s, prompt=%s, defresult=%s\n-> %s\n" % ( + cb_id, challenge, prompt, repr(defresult), repr(self.cb_value_dict.get(cb_result)) + )) ++ if not isinstance(cb_result, bytes): ++ cb_result = cb_result.encode('utf-8') + return cb_result + + |