summaryrefslogtreecommitdiff
path: root/python/samba/upgrade.py
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2015-09-24 07:41:22 +1200
committerGarming Sam <garming@samba.org>2016-05-11 03:47:04 +0200
commitac1ed18f8d396c431d381f511a21d6fd4f008c24 (patch)
tree5ac80d0bb8fbbba26bbff86f2d0187d561a5bbc7 /python/samba/upgrade.py
parente0acee02233d56392b99607bbd6afae6ff3da71f (diff)
downloadsamba-ac1ed18f8d396c431d381f511a21d6fd4f008c24.tar.gz
classicupgrade: Avoid needing to quote CN values in an DN, use dn.set_component()
While invalid for samAccountName values, when also used for samAccountName we should be dealing with this at the samldb layer, not here. This comes from unvalidated Samba3 data that can contain a , or = without a problem in that codebase. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'python/samba/upgrade.py')
-rw-r--r--python/samba/upgrade.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/python/samba/upgrade.py b/python/samba/upgrade.py
index 215ccd39164..38563235841 100644
--- a/python/samba/upgrade.py
+++ b/python/samba/upgrade.py
@@ -272,8 +272,10 @@ def add_group_from_mapping_entry(samdb, groupmap, logger):
return
m = ldb.Message()
- m.dn = ldb.Dn(samdb, "CN=%s,CN=Users,%s" % (groupmap.nt_name, samdb.get_default_basedn()))
- m['cn'] = ldb.MessageElement(groupmap.nt_name, ldb.FLAG_MOD_ADD, 'cn')
+ # We avoid using the format string to avoid needing to escape the CN values
+ m.dn = ldb.Dn(samdb, "CN=X,CN=Users")
+ m.dn.set_component(0, "CN", groupmap.nt_name)
+ m.dn.add_base(samdb.get_default_basedn())
m['objectClass'] = ldb.MessageElement('group', ldb.FLAG_MOD_ADD, 'objectClass')
m['objectSid'] = ldb.MessageElement(ndr_pack(groupmap.sid), ldb.FLAG_MOD_ADD,
'objectSid')