r26430: require explicit specification of loadparm context.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 13 Dec 2007 21:46:17 +0000 (22:46 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:49:58 +0000 (05:49 +0100)
21 files changed:
source/auth/credentials/credentials.c
source/auth/credentials/credentials.h
source/auth/credentials/credentials_files.c
source/auth/credentials/credentials_krb5.c
source/auth/gensec/gensec_gssapi.c
source/auth/gensec/gensec_krb5.c
source/auth/system_session.c
source/dsdb/samdb/ldb_modules/update_keytab.c
source/kdc/kpasswdd.c
source/ldap_server/ldap_server.c
source/lib/cmdline/popt_credentials.c
source/libnet/libnet_samdump_keytab.c
source/libnet/libnet_vampire.c
source/ntvfs/cifs/vfs_cifs.c
source/rpc_server/dcesrv_auth.c
source/rpc_server/remote/dcesrv_remote.c
source/scripting/ejs/smbcalls_creds.c
source/smb_server/smb/negprot.c
source/smb_server/smb2/negprot.c
source/utils/ntlm_auth.c
source/winbind/wb_init_domain.c

index e7f2280bc98b81e97bad78899e669cc551c6ea70..6d5c1210c9a71676f72c438b9f4aab58a0433cfc 100644 (file)
@@ -118,7 +118,8 @@ uint32_t cli_credentials_get_gensec_features(struct cli_credentials *creds)
 const char *cli_credentials_get_username(struct cli_credentials *cred)
 {
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred, 
+                                       cred->machine_account_pending_lp_ctx);
        }
 
        if (cred->username_obtained == CRED_CALLBACK && 
@@ -186,7 +187,8 @@ const char *cli_credentials_get_bind_dn(struct cli_credentials *cred)
 const char *cli_credentials_get_principal(struct cli_credentials *cred, TALLOC_CTX *mem_ctx)
 {
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                       cred->machine_account_pending_lp_ctx);
        }
 
        if (cred->principal_obtained == CRED_CALLBACK && 
@@ -276,7 +278,8 @@ bool cli_credentials_authentication_requested(struct cli_credentials *cred)
 const char *cli_credentials_get_password(struct cli_credentials *cred)
 {
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                                   cred->machine_account_pending_lp_ctx);
        }
 
        if (cred->password_obtained == CRED_CALLBACK && 
@@ -331,7 +334,8 @@ bool cli_credentials_set_password_callback(struct cli_credentials *cred,
 const char *cli_credentials_get_old_password(struct cli_credentials *cred)
 {
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                                   cred->machine_account_pending_lp_ctx);
        }
 
        return cred->old_password;
@@ -400,7 +404,8 @@ bool cli_credentials_set_nt_hash(struct cli_credentials *cred,
 const char *cli_credentials_get_domain(struct cli_credentials *cred)
 {
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                                   cred->machine_account_pending_lp_ctx);
        }
 
        if (cred->domain_obtained == CRED_CALLBACK && 
@@ -454,7 +459,8 @@ bool cli_credentials_set_domain_callback(struct cli_credentials *cred,
 const char *cli_credentials_get_realm(struct cli_credentials *cred)
 {      
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                                   cred->machine_account_pending_lp_ctx);
        }
 
        if (cred->realm_obtained == CRED_CALLBACK && 
@@ -669,7 +675,7 @@ void cli_credentials_guess(struct cli_credentials *cred,
        }
        
        if (cli_credentials_get_kerberos_state(cred) != CRED_DONT_USE_KERBEROS) {
-               cli_credentials_set_ccache(cred, NULL, CRED_GUESS_FILE);
+               cli_credentials_set_ccache(cred, lp_ctx, NULL, CRED_GUESS_FILE);
        }
 }
 
@@ -733,7 +739,8 @@ bool cli_credentials_is_anonymous(struct cli_credentials *cred)
        const char *username;
        
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred,
+                                                   cred->machine_account_pending_lp_ctx);
        }
 
        username = cli_credentials_get_username(cred);
index 7ea37e40d15fbb2d165ffa85aa6546cc798e5b8f..e00acf727abb73b492e12d6a7f4a639fbc800f14 100644 (file)
@@ -104,8 +104,8 @@ struct cli_credentials {
 
        /* We are flagged to get machine account details from the
         * secrets.ldb when we are asked for a username or password */
-
        bool machine_account_pending;
+       struct loadparm_context *machine_account_pending_lp_ctx;
        
        /* Is this a machine account? */
        bool machine_account;
index e7435f56f8660970a9be26d4652778989b4333da..c1001c962230327b7fa166f763ce31cdbf6dcae4 100644 (file)
@@ -305,13 +305,13 @@ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
         * (chewing CPU time) from the password */
        keytab = ldb_msg_find_attr_as_string(msgs[0], "krb5Keytab", NULL);
        if (keytab) {
-               cli_credentials_set_keytab_name(cred, keytab, CRED_SPECIFIED);
+               cli_credentials_set_keytab_name(cred, lp_ctx, keytab, CRED_SPECIFIED);
        } else {
                keytab = ldb_msg_find_attr_as_string(msgs[0], "privateKeytab", NULL);
                if (keytab) {
                        keytab = talloc_asprintf(mem_ctx, "FILE:%s", private_path(mem_ctx, lp_ctx, keytab));
                        if (keytab) {
-                               cli_credentials_set_keytab_name(cred, keytab, CRED_SPECIFIED);
+                               cli_credentials_set_keytab_name(cred, lp_ctx, keytab, CRED_SPECIFIED);
                        }
                }
        }
@@ -326,7 +326,8 @@ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
  * @param cred Credentials structure to fill in
  * @retval NTSTATUS error detailing any failure
  */
-NTSTATUS cli_credentials_set_machine_account(struct cli_credentials *cred)
+NTSTATUS cli_credentials_set_machine_account(struct cli_credentials *cred,
+                                            struct loadparm_context *lp_ctx)
 {
        char *filter;
        /* Bleh, nasty recursion issues: We are setting a machine
@@ -335,7 +336,7 @@ NTSTATUS cli_credentials_set_machine_account(struct cli_credentials *cred)
        cred->machine_account_pending = false;
        filter = talloc_asprintf(cred, SECRETS_PRIMARY_DOMAIN_FILTER, 
                                       cli_credentials_get_domain(cred));
-       return cli_credentials_set_secrets(cred, global_loadparm, NULL, 
+       return cli_credentials_set_secrets(cred, lp_ctx, NULL, 
                                           SECRETS_PRIMARY_DOMAIN_DN,
                                           filter);
 }
@@ -369,6 +370,7 @@ NTSTATUS cli_credentials_set_krbtgt(struct cli_credentials *cred,
  * @retval NTSTATUS error detailing any failure
  */
 NTSTATUS cli_credentials_set_stored_principal(struct cli_credentials *cred,
+                                             struct loadparm_context *lp_ctx,
                                              const char *serviceprincipal)
 {
        char *filter;
@@ -380,7 +382,7 @@ NTSTATUS cli_credentials_set_stored_principal(struct cli_credentials *cred,
                                 cli_credentials_get_realm(cred),
                                 cli_credentials_get_domain(cred),
                                 serviceprincipal);
-       return cli_credentials_set_secrets(cred, global_loadparm, NULL, 
+       return cli_credentials_set_secrets(cred, lp_ctx, NULL, 
                                           SECRETS_PRINCIPALS_DN, filter);
 }
 
@@ -393,9 +395,11 @@ NTSTATUS cli_credentials_set_stored_principal(struct cli_credentials *cred,
  *       than during, popt processing.
  *
  */
-void cli_credentials_set_machine_account_pending(struct cli_credentials *cred)
+void cli_credentials_set_machine_account_pending(struct cli_credentials *cred,
+                                                struct loadparm_context *lp_ctx)
 {
        cred->machine_account_pending = true;
+       cred->machine_account_pending_lp_ctx = lp_ctx;
 }
 
 
index cfdc2e3f5a392e16ee36852d5d638bfd5c538fce..90b196e99e3ef312169249188d4e02ec0819e419 100644 (file)
@@ -127,6 +127,7 @@ static int free_dccache(struct ccache_container *ccc) {
 }
 
 int cli_credentials_set_ccache(struct cli_credentials *cred, 
+                              struct loadparm_context *lp_ctx,
                               const char *name, 
                               enum credentials_obtained obtained)
 {
@@ -142,7 +143,7 @@ int cli_credentials_set_ccache(struct cli_credentials *cred,
                return ENOMEM;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx
                                               &ccc->smb_krb5_context);
        if (ret) {
                talloc_free(ccc);
@@ -201,6 +202,7 @@ int cli_credentials_set_ccache(struct cli_credentials *cred,
 
 
 static int cli_credentials_new_ccache(struct cli_credentials *cred, 
+                                     struct loadparm_context *lp_ctx,
                                      struct ccache_container **_ccc)
 {
        krb5_error_code ret;
@@ -218,7 +220,7 @@ static int cli_credentials_new_ccache(struct cli_credentials *cred,
                return ENOMEM;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx
                                               &ccc->smb_krb5_context);
        if (ret) {
                talloc_free(ccc);
@@ -250,12 +252,13 @@ static int cli_credentials_new_ccache(struct cli_credentials *cred,
 }
 
 int cli_credentials_get_ccache(struct cli_credentials *cred, 
+                              struct loadparm_context *lp_ctx,
                               struct ccache_container **ccc)
 {
        krb5_error_code ret;
        
        if (cred->machine_account_pending) {
-               cli_credentials_set_machine_account(cred);
+               cli_credentials_set_machine_account(cred, lp_ctx);
        }
 
        if (cred->ccache_obtained >= cred->ccache_threshold && 
@@ -267,7 +270,7 @@ int cli_credentials_get_ccache(struct cli_credentials *cred,
                return EINVAL;
        }
 
-       ret = cli_credentials_new_ccache(cred, ccc);
+       ret = cli_credentials_new_ccache(cred, lp_ctx, ccc);
        if (ret) {
                return ret;
        }
@@ -344,6 +347,7 @@ static int free_gssapi_creds(struct gssapi_creds_container *gcc)
 }
 
 int cli_credentials_get_client_gss_creds(struct cli_credentials *cred, 
+                                        struct loadparm_context *lp_ctx,
                                         struct gssapi_creds_container **_gcc) 
 {
        int ret = 0;
@@ -355,7 +359,7 @@ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
                *_gcc = cred->client_gss_creds;
                return 0;
        }
-       ret = cli_credentials_get_ccache(cred, 
+       ret = cli_credentials_get_ccache(cred, lp_ctx, 
                                         &ccache);
        if (ret) {
                DEBUG(1, ("Failed to get CCACHE for GSSAPI client: %s\n", error_message(ret)));
@@ -397,6 +401,7 @@ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred,
 */
 
 int cli_credentials_set_client_gss_creds(struct cli_credentials *cred, 
+                                        struct loadparm_context *lp_ctx,
                                         gss_cred_id_t gssapi_cred,
                                         enum credentials_obtained obtained) 
 {
@@ -413,7 +418,7 @@ int cli_credentials_set_client_gss_creds(struct cli_credentials *cred,
                return ENOMEM;
        }
 
-       ret = cli_credentials_new_ccache(cred, &ccc);
+       ret = cli_credentials_new_ccache(cred, lp_ctx, &ccc);
        if (ret != 0) {
                return ret;
        }
@@ -450,6 +455,7 @@ int cli_credentials_set_client_gss_creds(struct cli_credentials *cred,
  * it will be generated from the password.
  */
 int cli_credentials_get_keytab(struct cli_credentials *cred, 
+                              struct loadparm_context *lp_ctx,
                               struct keytab_container **_ktc)
 {
        krb5_error_code ret;
@@ -468,7 +474,7 @@ int cli_credentials_get_keytab(struct cli_credentials *cred,
                return EINVAL;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx
                                               &smb_krb5_context);
        if (ret) {
                return ret;
@@ -503,6 +509,7 @@ int cli_credentials_get_keytab(struct cli_credentials *cred,
  * FILE:/etc/krb5.keytab), open it and attach it */
 
 int cli_credentials_set_keytab_name(struct cli_credentials *cred, 
+                                   struct loadparm_context *lp_ctx,
                                    const char *keytab_name, 
                                    enum credentials_obtained obtained) 
 {
@@ -515,7 +522,7 @@ int cli_credentials_set_keytab_name(struct cli_credentials *cred,
                return 0;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx, &smb_krb5_context);
        if (ret) {
                return ret;
        }
@@ -540,7 +547,8 @@ int cli_credentials_set_keytab_name(struct cli_credentials *cred,
        return ret;
 }
 
-int cli_credentials_update_keytab(struct cli_credentials *cred) 
+int cli_credentials_update_keytab(struct cli_credentials *cred, 
+                                 struct loadparm_context *lp_ctx) 
 {
        krb5_error_code ret;
        struct keytab_container *ktc;
@@ -553,7 +561,7 @@ int cli_credentials_update_keytab(struct cli_credentials *cred)
                return ENOMEM;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx, &smb_krb5_context);
        if (ret) {
                talloc_free(mem_ctx);
                return ret;
@@ -561,7 +569,7 @@ int cli_credentials_update_keytab(struct cli_credentials *cred)
 
        enctype_strings = cli_credentials_get_enctype_strings(cred);
        
-       ret = cli_credentials_get_keytab(cred, &ktc);
+       ret = cli_credentials_get_keytab(cred, lp_ctx, &ktc);
        if (ret != 0) {
                talloc_free(mem_ctx);
                return ret;
@@ -576,6 +584,7 @@ int cli_credentials_update_keytab(struct cli_credentials *cred)
 /* Get server gss credentials (in gsskrb5, this means the keytab) */
 
 int cli_credentials_get_server_gss_creds(struct cli_credentials *cred, 
+                                        struct loadparm_context *lp_ctx,
                                         struct gssapi_creds_container **_gcc) 
 {
        int ret = 0;
@@ -593,13 +602,12 @@ int cli_credentials_get_server_gss_creds(struct cli_credentials *cred,
                return 0;
        }
 
-       ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
+       ret = cli_credentials_get_krb5_context(cred, lp_ctx, &smb_krb5_context);
        if (ret) {
                return ret;
        }
 
-       ret = cli_credentials_get_keytab(cred, 
-                                        &ktc);
+       ret = cli_credentials_get_keytab(cred, lp_ctx, &ktc);
        if (ret) {
                DEBUG(1, ("Failed to get keytab for GSSAPI server: %s\n", error_message(ret)));
                return ret;
index bb71a550734910b82b00393d1f8273614f39eb8a..87fa47646bbfacf95f55d2b779cbd4ec597f451f 100644 (file)
@@ -271,7 +271,7 @@ static NTSTATUS gensec_gssapi_server_start(struct gensec_security *gensec_securi
                DEBUG(3, ("No machine account credentials specified\n"));
                return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
        } else {
-               ret = cli_credentials_get_server_gss_creds(machine_account, &gcc);
+               ret = cli_credentials_get_server_gss_creds(machine_account, gensec_security->lp_ctx, &gcc);
                if (ret) {
                        DEBUG(1, ("Aquiring acceptor credentials failed: %s\n", 
                                  error_message(ret)));
@@ -357,7 +357,7 @@ static NTSTATUS gensec_gssapi_client_start(struct gensec_security *gensec_securi
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       ret = cli_credentials_get_client_gss_creds(creds, &gcc);
+       ret = cli_credentials_get_client_gss_creds(creds, gensec_security->lp_ctx, &gcc);
        switch (ret) {
        case 0:
                break;
@@ -1365,6 +1365,7 @@ static NTSTATUS gensec_gssapi_session_info(struct gensec_security *gensec_securi
                cli_credentials_set_anonymous(session_info->credentials);
                
                ret = cli_credentials_set_client_gss_creds(session_info->credentials, 
+                                                          gensec_security->lp_ctx, 
                                                           gensec_gssapi_state->delegated_cred_handle,
                                                           CRED_SPECIFIED);
                if (ret) {
index ca289f24d361cd4023151c861c7b0ba61432150e..5cd0de1ceb764f6b9cc54ecadd0a5369e382d864 100644 (file)
@@ -246,7 +246,7 @@ static NTSTATUS gensec_krb5_client_start(struct gensec_security *gensec_security
 
        principal = gensec_get_target_principal(gensec_security);
 
-       ret = cli_credentials_get_ccache(gensec_get_credentials(gensec_security), &ccache_container);
+       ret = cli_credentials_get_ccache(gensec_get_credentials(gensec_security), gensec_security->lp_ctx, &ccache_container);
        switch (ret) {
        case 0:
                break;
@@ -444,7 +444,7 @@ static NTSTATUS gensec_krb5_update(struct gensec_security *gensec_security,
                }       
 
                /* Grab the keytab, however generated */
-               ret = cli_credentials_get_keytab(gensec_get_credentials(gensec_security), &keytab);
+               ret = cli_credentials_get_keytab(gensec_get_credentials(gensec_security), gensec_security->lp_ctx, &keytab);
                if (ret) {
                        return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
                }
index 7c1e97b74f5f2b50e0236c3d0cb02cd6a8924302..e99bbbb1abbd9309421b3ba832c4fdd845f29256 100644 (file)
@@ -196,7 +196,7 @@ static NTSTATUS _auth_system_session_info(TALLOC_CTX *parent_ctx,
        if (anonymous_credentials) {
                cli_credentials_set_anonymous(session_info->credentials);
        } else {
-               cli_credentials_set_machine_account_pending(session_info->credentials);
+               cli_credentials_set_machine_account_pending(session_info->credentials, lp_ctx);
        }
        *_session_info = session_info;
 
index 87efa6a6f8f9f9b2adba55624a5f59d706393aa2..a18efd757aa6803a657e5e1176aa26a1c722f368 100644 (file)
@@ -158,7 +158,7 @@ static int update_kt_end_trans(struct ldb_module *module)
        struct dn_list *p;
        for (p=data->changed_dns; p; p = p->next) {
                int kret;
-               kret = cli_credentials_update_keytab(p->creds);
+               kret = cli_credentials_update_keytab(p->creds, ldb_get_opaque(module->ldb, "loadparm"));
                if (kret != 0) {
                        talloc_free(data->changed_dns);
                        data->changed_dns = NULL;
index 0a3bfe1219ef06eaf3b30b9d991c9030a8284e75..f468fea6c4466a532c0116ceb15c05a09ca01953 100644 (file)
@@ -474,7 +474,7 @@ bool kpasswdd_process(struct kdc_server *kdc,
         * we already have, rather than a new context */        
        cli_credentials_set_krb5_context(server_credentials, kdc->smb_krb5_context);
        cli_credentials_set_conf(server_credentials, kdc->task->lp_ctx);
-       nt_status = cli_credentials_set_stored_principal(server_credentials, "kadmin/changepw");
+       nt_status = cli_credentials_set_stored_principal(server_credentials, kdc->task->lp_ctx, "kadmin/changepw");
        if (!NT_STATUS_IS_OK(nt_status)) {
                ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
                                                       KRB5_KPASSWD_HARDERROR,
index f0b5e56205e3478cfb004d38e27e2ae5d5d6265f..a2521ca40696847461d3cb8dad755254c2845949 100644 (file)
@@ -397,7 +397,7 @@ static void ldapsrv_accept(struct stream_connection *c)
        }
        
        cli_credentials_set_conf(server_credentials, conn->lp_ctx);
-       status = cli_credentials_set_machine_account(server_credentials);
+       status = cli_credentials_set_machine_account(server_credentials, conn->lp_ctx);
        if (!NT_STATUS_IS_OK(status)) {
                stream_terminate_connection(c, talloc_asprintf(conn, "Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(status)));
                return;
index b5de734a1953ea6a7ca413ce6661f70fdab2577b..de5ea7c1b675e16a14e687974d384bf088d421e6 100644 (file)
@@ -96,7 +96,7 @@ static void popt_common_credentials_callback(poptContext con,
 
        case 'P':
                /* Later, after this is all over, get the machine account details from the secrets.ldb */
-               cli_credentials_set_machine_account_pending(cmdline_credentials);
+               cli_credentials_set_machine_account_pending(cmdline_credentials, cmdline_lp_ctx);
                break;
 
        case OPT_KERBEROS:
index c235df6d2511d319d1d718e34a5f01f786a79e8c..c25cb4d9c56fbf3c83b762ebda33c0ff7762f177 100644 (file)
@@ -28,6 +28,7 @@
 #include "param/param.h"
 
 static NTSTATUS samdump_keytab_handle_user(TALLOC_CTX *mem_ctx,
+                                          struct loadparm_context *lp_ctx,
                                            const char *keytab_name,
                                            struct netr_DELTA_ENUM *delta) 
 {
@@ -45,19 +46,19 @@ static NTSTATUS samdump_keytab_handle_user(TALLOC_CTX *mem_ctx,
        if (!credentials) {
                return NT_STATUS_NO_MEMORY;
        }
-       cli_credentials_set_conf(credentials, global_loadparm);
+       cli_credentials_set_conf(credentials, lp_ctx);
        cli_credentials_set_username(credentials, username, CRED_SPECIFIED);
 
        /* We really should consult ldap in the main SamSync code, and
         * pass a value in here */
        cli_credentials_set_kvno(credentials, 0);
        cli_credentials_set_nt_hash(credentials, &user->ntpassword, CRED_SPECIFIED);
-       ret = cli_credentials_set_keytab_name(credentials, keytab_name, CRED_SPECIFIED);
+       ret = cli_credentials_set_keytab_name(credentials, lp_ctx, keytab_name, CRED_SPECIFIED);
        if (ret) {
                return NT_STATUS_UNSUCCESSFUL;
        }
 
-       ret = cli_credentials_update_keytab(credentials);
+       ret = cli_credentials_update_keytab(credentials, lp_ctx);
        if (ret) {
                return NT_STATUS_UNSUCCESSFUL;
        }
@@ -81,6 +82,7 @@ static NTSTATUS libnet_samdump_keytab_fn(TALLOC_CTX *mem_ctx,
                /* not interested in builtin users */
                if (database == SAM_DATABASE_DOMAIN) {
                        nt_status = samdump_keytab_handle_user(mem_ctx, 
+                                                              global_loadparm,
                                                               keytab_name,
                                                               delta);
                        break;
index 574b34c246bf0b5095e449369322c9cfbd34fe17..df4cb4d657c884481a22f80e8694984d053126b2 100644 (file)
@@ -186,7 +186,7 @@ NTSTATUS libnet_SamSync_netlogon(struct libnet_context *ctx, TALLOC_CTX *mem_ctx
                        return NT_STATUS_NO_MEMORY;
                }
                cli_credentials_set_conf(machine_account, ctx->lp_ctx);
-               nt_status = cli_credentials_set_machine_account(machine_account);
+               nt_status = cli_credentials_set_machine_account(machine_account, ctx->lp_ctx);
                if (!NT_STATUS_IS_OK(nt_status)) {
                        r->out.error_string = talloc_strdup(mem_ctx, "Could not obtain machine account password - are we joined to the domain?");
                        talloc_free(samsync_ctx);
index 178e9b01ccc381c1529a3d9212e9123f902153e5..9426355ecb03e9f8c368a9b666f930b4fd07962d 100644 (file)
@@ -180,7 +180,7 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
                }
-               status = cli_credentials_set_machine_account(credentials);
+               status = cli_credentials_set_machine_account(credentials, ntvfs->ctx->lp_ctx);
                if (!NT_STATUS_IS_OK(status)) {
                        return status;
                }
index fa724a072664923989fe8f5b472eafe1bcb74ce0..319dc0788a0b262ee2dd99e28e82fb8d15e66205 100644 (file)
@@ -73,7 +73,7 @@ bool dcesrv_auth_bind(struct dcesrv_call_state *call)
        }
        
        cli_credentials_set_conf(server_credentials, call->conn->dce_ctx->lp_ctx);
-       status = cli_credentials_set_machine_account(server_credentials);
+       status = cli_credentials_set_machine_account(server_credentials, call->conn->dce_ctx->lp_ctx);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(status)));
                talloc_free(server_credentials);
index 3b5c0a02aec80b64c626e3444b9f7b090342ebef..cd32160d88957d1c1f8d46325c587fac3a5ef223 100644 (file)
@@ -89,7 +89,7 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
                }
-               status = cli_credentials_set_machine_account(credentials);
+               status = cli_credentials_set_machine_account(credentials, dce_call->conn->dce_ctx->lp_ctx);
                if (!NT_STATUS_IS_OK(status)) {
                        return status;
                }
index 781843371a2ba9cb2b09ebee5f5daa46db209586..6dfff8f925ca48ae37e9f008f71a731545843e3b 100644 (file)
@@ -192,7 +192,7 @@ static int ejs_creds_set_machine_account(MprVarHandle eid, int argc, struct MprV
                return -1;
        }
        
-       if (NT_STATUS_IS_OK(cli_credentials_set_machine_account(creds))) {
+       if (NT_STATUS_IS_OK(cli_credentials_set_machine_account(creds, global_loadparm))) {
                mpr_Return(eid, mprCreateBoolVar(true));
        } else {
                mpr_Return(eid, mprCreateBoolVar(false));
index f92c542ef655f49d6f7588326a4d444e6bce5652..6d9ff838cb0398290bef94ad706cb7dc8259c4b3 100644 (file)
@@ -375,7 +375,7 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
                }
                
                cli_credentials_set_conf(server_credentials, req->smb_conn->lp_ctx);
-               nt_status = cli_credentials_set_machine_account(server_credentials);
+               nt_status = cli_credentials_set_machine_account(server_credentials, req->smb_conn->lp_ctx);
                if (!NT_STATUS_IS_OK(nt_status)) {
                        DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
                        talloc_free(server_credentials);
index 664079812ad12a3f2817da3c56565422ae68d914..8e3cfd354751a703aeb0fefaa3bb9e85ebe3ef59 100644 (file)
@@ -55,7 +55,7 @@ static NTSTATUS smb2srv_negprot_secblob(struct smb2srv_request *req, DATA_BLOB *
        }
 
        cli_credentials_set_conf(server_credentials, req->smb_conn->lp_ctx);
-       nt_status = cli_credentials_set_machine_account(server_credentials);
+       nt_status = cli_credentials_set_machine_account(server_credentials, req->smb_conn->lp_ctx);
        if (!NT_STATUS_IS_OK(nt_status)) {
                DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
                talloc_free(server_credentials);
index 93d1909a56a0cd0827aa3bac99b4085af6132b5f..299be37765e921c055e7037082dc7ead43784c9f 100644 (file)
@@ -504,7 +504,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                switch (stdio_helper_mode) {
                case GSS_SPNEGO_SERVER:
                case SQUID_2_5_NTLMSSP:
-                       cli_credentials_set_machine_account(creds);
+                       cli_credentials_set_machine_account(creds, lp_ctx);
                        break;
                default:
                        break;
index cee7e5c3e7837c7a2d998f11730399ebf3728a59..fc35f11db629ab3f7a29963ef45075bd5b65c055 100644 (file)
@@ -157,7 +157,7 @@ struct composite_context *wb_init_domain_send(TALLOC_CTX *mem_ctx,
 
        /* Connect the machine account to the credentials */
        state->ctx->status =
-               cli_credentials_set_machine_account(state->domain->libnet_ctx->cred);
+               cli_credentials_set_machine_account(state->domain->libnet_ctx->cred, state->domain->libnet_ctx->lp_ctx);
        if (!NT_STATUS_IS_OK(state->ctx->status)) goto failed;
 
        state->domain->netlogon_binding = init_domain_binding(state, &ndr_table_netlogon);