summaryrefslogtreecommitdiff
path: root/python/samba/samdb.py
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2018-05-14 13:38:20 +0100
committerNoel Power <npower@samba.org>2018-05-17 11:31:28 +0200
commit7102732b25dfcd5e6815159e3043eed240e918d3 (patch)
treefa74219c5ec0acbb199da2eea910aa7d6f135c9c /python/samba/samdb.py
parentb28b6a4565870ac402b3678b4eecfe8e30fb0a73 (diff)
downloadsamba-7102732b25dfcd5e6815159e3043eed240e918d3.tar.gz
python/samba: Fix incorrect encode of password
In python2 you can encode a 'str' type which doesn't really make sense since it is already bytes (as such). In python3 this isn't possible you can't encode bytes or decode strings. Also because you can call encode on 'str' in python2 it tries to to what you wanted and it implicity calls decode('ascii') before performing the encode. This is why we get mention of ascii codec in the error. This patch should future proof for python3 also. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13435 Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python/samba/samdb.py')
-rw-r--r--python/samba/samdb.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/python/samba/samdb.py b/python/samba/samdb.py
index 424a648446b..abe434c8578 100644
--- a/python/samba/samdb.py
+++ b/python/samba/samdb.py
@@ -589,7 +589,11 @@ member: %s
if len(res) > 1:
raise Exception('Matched %u multiple users with filter "%s"' % (len(res), search_filter))
user_dn = res[0].dn
- pw = text_type(b'"' + password.encode('utf-8') + b'"', 'utf-8').encode('utf-16-le')
+ if not isinstance(password, text_type):
+ pw = password.decode('utf-8')
+ else:
+ pw = password
+ pw = ('"' + pw + '"').encode('utf-16-le')
setpw = """
dn: %s
changetype: modify