summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-05-14 23:50:25 +0200
committerGünther Deschner <gd@samba.org>2008-05-14 23:53:23 +0200
commit847d385f7bac1c02727d7655f4e277813d4fe42c (patch)
tree78d987d908ad1d435f10f9ad145b774e3f9116a5
parent5e70a25116f4b7355e3995a74e586da7832dff39 (diff)
downloadsamba-847d385f7bac1c02727d7655f4e277813d4fe42c.tar.gz
samba-847d385f7bac1c02727d7655f4e277813d4fe42c.tar.bz2
samba-847d385f7bac1c02727d7655f4e277813d4fe42c.zip
Fix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).
Guenther (This used to be commit f3251ba03a69c2fd0335861177159a32b2bc9477)
-rw-r--r--source3/libads/ldap.c10
-rw-r--r--source3/libnet/libnet_join.c3
2 files changed, 6 insertions, 7 deletions
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 24eb114f51..99fd645a3d 100644
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -3595,18 +3595,18 @@ const char *ads_get_extended_right_name_by_guid(ADS_STRUCT *ads,
ADS_STATUS ads_check_ou_dn(TALLOC_CTX *mem_ctx,
ADS_STRUCT *ads,
- const char *account_ou)
+ const char **account_ou)
{
struct ldb_dn *name_dn = NULL;
const char *name = NULL;
char *ou_string = NULL;
- name_dn = ldb_dn_explode(mem_ctx, account_ou);
+ name_dn = ldb_dn_explode(mem_ctx, *account_ou);
if (name_dn) {
return ADS_SUCCESS;
}
- ou_string = ads_ou_string(ads, account_ou);
+ ou_string = ads_ou_string(ads, *account_ou);
if (!ou_string) {
return ADS_ERROR_LDAP(LDAP_INVALID_DN_SYNTAX);
}
@@ -3623,8 +3623,8 @@ ADS_STATUS ads_check_ou_dn(TALLOC_CTX *mem_ctx,
return ADS_ERROR_LDAP(LDAP_INVALID_DN_SYNTAX);
}
- account_ou = talloc_strdup(mem_ctx, name);
- if (!account_ou) {
+ *account_ou = talloc_strdup(mem_ctx, name);
+ if (!*account_ou) {
return ADS_ERROR_LDAP(LDAP_NO_MEMORY);
}
diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
index 36700b26c0..4cfdd50473 100644
--- a/source3/libnet/libnet_join.c
+++ b/source3/libnet/libnet_join.c
@@ -207,7 +207,7 @@ static ADS_STATUS libnet_join_precreate_machine_acct(TALLOC_CTX *mem_ctx,
const char *attrs[] = { "dn", NULL };
bool moved = false;
- status = ads_check_ou_dn(mem_ctx, r->in.ads, r->in.account_ou);
+ status = ads_check_ou_dn(mem_ctx, r->in.ads, &r->in.account_ou);
if (!ADS_ERR_OK(status)) {
return status;
}
@@ -1486,7 +1486,6 @@ static int libnet_destroy_UnjoinCtx(struct libnet_UnjoinCtx *r)
unsetenv(KRB5_ENV_CCNAME);
}
-
return 0;
}