From e7144f2e115f7d446de880a5680c2f2f02dd9467 Mon Sep 17 00:00:00 2001 From: Noel Power Date: Wed, 16 May 2018 16:51:34 +0100 Subject: python/samba/netcmd: net.change_password should be passed string password param which in python2 (is str) is incorrectly encoded before passing to net.change_password. python2 - password is either unicode or str, if str we should decode to get unicode (and then pass to net.change_password). python3 - password is either str or bytes, if bytes then decode (and pass as 'str' to net.change_password). Signed-off-by: Noel Power Reviewed-by: Andrew Bartlett --- python/samba/netcmd/user.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'python') diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py index 4009d6304bf..f211b5158ce 100644 --- a/python/samba/netcmd/user.py +++ b/python/samba/netcmd/user.py @@ -54,7 +54,7 @@ from samba.netcmd import ( SuperCommand, Option, ) - +from samba.compat import text_type try: import io @@ -713,7 +713,9 @@ class cmd_user_password(Command): self.outf.write("Sorry, passwords do not match.\n") try: - net.change_password(password.encode('utf-8')) + if not isinstance(password, text_type): + password = password.decode('utf8') + net.change_password(password) except Exception as msg: # FIXME: catch more specific exception raise CommandError("Failed to change password : %s" % msg) -- cgit v1.2.3