summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim McDonough <jmcd@samba.org>2006-04-06 01:46:01 +0000
committerJim McDonough <jmcd@samba.org>2006-04-06 01:46:01 +0000
commitb7d4567dd3050efe1b6c5dcdfe2b5131bf8e5612 (patch)
tree417b79ff35253308a248257c094a05c576dc580d
parent6ada010d5685b011adb1a7657e9ae2edad31b5a9 (diff)
downloadsamba-b7d4567dd3050efe1b6c5dcdfe2b5131bf8e5612.tar.gz
r14931: Fix #1374: can't join an OU with name that contains '#'
I had to eliminate "\" as an OU path separator, because it is the escape char in LDAP. We still accept "/", but using the escape char is just not a good choice.
-rw-r--r--source/libads/ldap.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/libads/ldap.c b/source/libads/ldap.c
index e1cea533a0e..c2ebf14d2f9 100644
--- a/source/libads/ldap.c
+++ b/source/libads/ldap.c
@@ -1083,7 +1083,8 @@ ADS_STATUS ads_del_dn(ADS_STRUCT *ads, char *del_dn)
/**
* Build an org unit string
* if org unit is Computers or blank then assume a container, otherwise
- * assume a \ separated list of organisational units
+ * assume a / separated list of organisational units.
+ * jmcd: '\' is now used for escapes so certain chars can be in the ou (e.g. #)
* @param ads connection to ads server
* @param org_unit Organizational unit
* @return org unit string - caller must free
@@ -1104,7 +1105,10 @@ char *ads_ou_string(ADS_STRUCT *ads, const char *org_unit)
return SMB_STRDUP("cn=Computers");
}
- return ads_build_path(org_unit, "\\/", "ou=", 1);
+ /* jmcd: removed "\\" from the separation chars, because it is
+ needed as an escape for chars like '#' which are valid in an
+ OU name */
+ return ads_build_path(org_unit, "/", "ou=", 1);
}
/**