mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
s3:ads fix dn parsing name was always null
While there also use ldap_exploded_dn instead of ldb_dn_validate() so we can remove a huge dependency that is hanging there only for one very minor marginal use. Signed-off-by: Günther Deschner <gd@samba.org>
This commit is contained in:
parent
74703e4897
commit
8492f92843
@ -3856,39 +3856,36 @@ ADS_STATUS ads_check_ou_dn(TALLOC_CTX *mem_ctx,
|
||||
ADS_STRUCT *ads,
|
||||
const char **account_ou)
|
||||
{
|
||||
struct ldb_dn *name_dn = NULL;
|
||||
const char *name = NULL;
|
||||
char *ou_string = NULL;
|
||||
struct ldb_context *ldb = ldb_init(mem_ctx, NULL);
|
||||
char **exploded_dn;
|
||||
const char *name;
|
||||
char *ou_string;
|
||||
|
||||
name_dn = ldb_dn_new(mem_ctx, ldb, *account_ou);
|
||||
if (name_dn && ldb_dn_validate(name_dn)) {
|
||||
talloc_free(ldb);
|
||||
exploded_dn = ldap_explode_dn(*account_ou, 0);
|
||||
if (exploded_dn) {
|
||||
ldap_value_free(exploded_dn);
|
||||
return ADS_SUCCESS;
|
||||
}
|
||||
|
||||
ou_string = ads_ou_string(ads, *account_ou);
|
||||
if (!ou_string) {
|
||||
talloc_free(ldb);
|
||||
return ADS_ERROR_LDAP(LDAP_INVALID_DN_SYNTAX);
|
||||
}
|
||||
|
||||
name_dn = ldb_dn_new_fmt(mem_ctx, ldb, "%s,%s", ou_string,
|
||||
ads->config.bind_path);
|
||||
name = talloc_asprintf(mem_ctx, "%s,%s", ou_string,
|
||||
ads->config.bind_path);
|
||||
SAFE_FREE(ou_string);
|
||||
|
||||
if (!name_dn || !ldb_dn_validate(name_dn)) {
|
||||
talloc_free(ldb);
|
||||
return ADS_ERROR_LDAP(LDAP_INVALID_DN_SYNTAX);
|
||||
}
|
||||
|
||||
*account_ou = talloc_strdup(mem_ctx, name);
|
||||
if (!*account_ou) {
|
||||
talloc_free(ldb);
|
||||
if (!name) {
|
||||
return ADS_ERROR_LDAP(LDAP_NO_MEMORY);
|
||||
}
|
||||
|
||||
talloc_free(ldb);
|
||||
exploded_dn = ldap_explode_dn(name, 0);
|
||||
if (!exploded_dn) {
|
||||
return ADS_ERROR_LDAP(LDAP_INVALID_DN_SYNTAX);
|
||||
}
|
||||
ldap_value_free(exploded_dn);
|
||||
|
||||
*account_ou = name;
|
||||
return ADS_SUCCESS;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user