summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/clidfs.c13
-rw-r--r--source3/libsmb/libsmb_context.c18
2 files changed, 19 insertions, 12 deletions
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c
index 35922b13e9..f0ac39fed0 100644
--- a/source3/libsmb/clidfs.c
+++ b/source3/libsmb/clidfs.c
@@ -471,18 +471,19 @@ static void cm_set_password(const char *newpass)
/****************************************************************************
****************************************************************************/
-void cli_cm_set_credentials(void)
+void cli_cm_set_credentials(struct user_auth_info *auth_info)
{
SAFE_FREE(cm_creds.username);
- cm_creds.username = SMB_STRDUP(get_cmdline_auth_info_username());
+ cm_creds.username = SMB_STRDUP(get_cmdline_auth_info_username(
+ auth_info));
- if (get_cmdline_auth_info_got_pass()) {
- cm_set_password(get_cmdline_auth_info_password());
+ if (get_cmdline_auth_info_got_pass(auth_info)) {
+ cm_set_password(get_cmdline_auth_info_password(auth_info));
}
- cm_creds.use_kerberos = get_cmdline_auth_info_use_kerberos();
+ cm_creds.use_kerberos = get_cmdline_auth_info_use_kerberos(auth_info);
cm_creds.fallback_after_kerberos = false;
- cm_creds.signing_state = get_cmdline_auth_info_signing_state();
+ cm_creds.signing_state = get_cmdline_auth_info_signing_state(auth_info);
}
/****************************************************************************
diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c
index 19843383de..becee17f65 100644
--- a/source3/libsmb/libsmb_context.c
+++ b/source3/libsmb/libsmb_context.c
@@ -633,13 +633,19 @@ smbc_set_credentials(char *workgroup,
smbc_bool use_kerberos,
char *signing_state)
{
-
- set_cmdline_auth_info_username(user);
- set_cmdline_auth_info_password(password);
- set_cmdline_auth_info_use_kerberos(use_kerberos);
- if (! set_cmdline_auth_info_signing_state(signing_state)) {
+ struct user_auth_info *auth_info;
+
+ auth_info = user_auth_info_init(talloc_tos());
+ if (auth_info == NULL) {
+ return;
+ }
+ set_cmdline_auth_info_username(auth_info, user);
+ set_cmdline_auth_info_password(auth_info, password);
+ set_cmdline_auth_info_use_kerberos(auth_info, use_kerberos);
+ if (! set_cmdline_auth_info_signing_state(auth_info, signing_state)) {
DEBUG(0, ("Invalid signing state: %s", signing_state));
}
set_global_myworkgroup(workgroup);
- cli_cm_set_credentials();
+ cli_cm_set_credentials(auth_info);
+ TALLOC_FREE(auth_info);
}