Fix Bug #5465 (joining with createcomputer=ou1/ou2/ou3).
authorGünther Deschner <gd@samba.org>
Wed, 14 May 2008 21:50:25 +0000 (23:50 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 14 May 2008 21:53:23 +0000 (23:53 +0200)
Guenther
(This used to be commit f3251ba03a69c2fd0335861177159a32b2bc9477)

source3/libads/ldap.c
source3/libnet/libnet_join.c

index 24eb114f51d37f36272ae49251e8fcb0701dc136..99fd645a3d03764dcfa5e439a7d399764e4f1adf 100644 (file)
@@ -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);
        }
 
index 36700b26c025796e8597b8824dcf065db84db10b..4cfdd50473806d131d9f08f5ceb8d921ecda229a 100644 (file)
@@ -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;
 }