summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch49
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
+
+