python/samba: use an explicit .encode('utf-8') where we expect utf8 passwords
authorStefan Metzmacher <metze@samba.org>
Mon, 13 Feb 2017 21:34:06 +0000 (22:34 +0100)
committerRalph Boehme <slow@samba.org>
Tue, 21 Feb 2017 15:09:22 +0000 (16:09 +0100)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12262

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
python/samba/join.py
python/samba/netcmd/user.py
python/samba/provision/__init__.py
python/samba/provision/sambadns.py
python/samba/samdb.py

index 64854681fb5f4372a57a41b9c5c5b16ff07df625..01c22602e396c9ffd851fa92f8265206277079f0 100644 (file)
@@ -880,7 +880,7 @@ class dc_join(object):
                 repl_creds.guess(ctx.lp)
                 repl_creds.set_kerberos_state(DONT_USE_KERBEROS)
                 repl_creds.set_username(ctx.samname)
-                repl_creds.set_password(ctx.acct_pass)
+                repl_creds.set_password(ctx.acct_pass.encode('utf-8'))
             else:
                 repl_creds = ctx.creds
 
index 43581703bfd27cc002120319f2ba9b6b4a726517..f007ee589888bf5cfe0f80837ef6bd3512d66a60 100644 (file)
@@ -683,7 +683,7 @@ class cmd_user_password(Command):
                 self.outf.write("Sorry, passwords do not match.\n")
 
         try:
-            net.change_password(password)
+            net.change_password(password.encode('utf-8'))
         except Exception, msg:
             # FIXME: catch more specific exception
             raise CommandError("Failed to change password : %s" % msg)
index 3187b659e132b4f4ef6e55a244040b4ccd889b0a..ad269aa1463cdff088306713e3ec0428bc956556 100644 (file)
@@ -877,7 +877,7 @@ def secretsdb_self_join(secretsdb, domain,
         msg["msDS-KeyVersionNumber"] = [str(key_version_number)]
         msg["privateKeytab"] = ["secrets.keytab"]
 
-    msg["secret"] = [machinepass]
+    msg["secret"] = [machinepass.encode('utf-8')]
     msg["samAccountName"] = ["%s$" % netbiosname]
     msg["secureChannelType"] = [str(secure_channel_type)]
     if domainsid is not None:
index df4673b961944c681ae79cdb1131e00c87f0bde9..2c69dd4e910bb60b23c31b95e09f96dce098591e 100644 (file)
@@ -661,7 +661,7 @@ def secretsdb_setup_dns(secretsdb, names, private_dir, realm,
             "REALM": realm,
             "DNSDOMAIN": dnsdomain,
             "DNS_KEYTAB": dns_keytab_path,
-            "DNSPASS_B64": b64encode(dnspass),
+            "DNSPASS_B64": b64encode(dnspass.encode('utf-8')),
             "KEY_VERSION_NUMBER": str(key_version_number),
             "HOSTNAME": names.hostname,
             "DNSNAME" : '%s.%s' % (
index eabe363aac92e266aad5f5dc126e66e62dcb815b..19dd8e9a6ad7d0dfc8e698f40c6d0a772a620525 100644 (file)
@@ -503,7 +503,7 @@ 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 = unicode('"' + password + '"', 'utf-8').encode('utf-16-le')
+            pw = unicode('"' + password.encode('utf-8') + '"', 'utf-8').encode('utf-16-le')
             setpw = """
 dn: %s
 changetype: modify