mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
s3:winbind: Create service principal inside add_ccache_to_list()
The function can build the service principal itself, there is no need to do it in the caller. This removes code duplication. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14979 Signed-off-by: Samuel Cabrero <scabrero@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
parent
2235a4aac4
commit
8bef8e3de9
@ -493,7 +493,6 @@ bool ccache_entry_identical(const char *username,
|
||||
|
||||
NTSTATUS add_ccache_to_list(const char *princ_name,
|
||||
const char *ccname,
|
||||
const char *service,
|
||||
const char *username,
|
||||
const char *pass,
|
||||
const char *realm,
|
||||
@ -613,12 +612,6 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
|
||||
goto no_mem;
|
||||
}
|
||||
}
|
||||
if (service) {
|
||||
entry->service = talloc_strdup(entry, service);
|
||||
if (!entry->service) {
|
||||
goto no_mem;
|
||||
}
|
||||
}
|
||||
if (canon_principal != NULL) {
|
||||
entry->canon_principal = talloc_strdup(entry, canon_principal);
|
||||
if (entry->canon_principal == NULL) {
|
||||
@ -642,6 +635,15 @@ NTSTATUS add_ccache_to_list(const char *princ_name,
|
||||
goto no_mem;
|
||||
}
|
||||
|
||||
entry->service = talloc_asprintf(entry,
|
||||
"%s/%s@%s",
|
||||
KRB5_TGS_NAME,
|
||||
realm,
|
||||
realm);
|
||||
if (entry->service == NULL) {
|
||||
goto no_mem;
|
||||
}
|
||||
|
||||
entry->create_time = create_time;
|
||||
entry->renew_until = renew_until;
|
||||
entry->uid = uid;
|
||||
|
@ -730,7 +730,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
|
||||
krb5_error_code krb5_ret;
|
||||
const char *cc = NULL;
|
||||
const char *principal_s = NULL;
|
||||
const char *service = NULL;
|
||||
char *realm = NULL;
|
||||
fstring name_namespace, name_domain, name_user;
|
||||
time_t ticket_lifetime = 0;
|
||||
@ -817,11 +816,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
service = talloc_asprintf(mem_ctx, "%s/%s@%s", KRB5_TGS_NAME, realm, realm);
|
||||
if (service == NULL) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
local_service = talloc_asprintf(mem_ctx, "%s$@%s",
|
||||
lp_netbios_name(), lp_realm());
|
||||
if (local_service == NULL) {
|
||||
@ -912,7 +906,6 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
|
||||
|
||||
result = add_ccache_to_list(principal_s,
|
||||
cc,
|
||||
service,
|
||||
user,
|
||||
pass,
|
||||
realm,
|
||||
@ -1285,7 +1278,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
|
||||
const char *cc = NULL;
|
||||
char *realm = NULL;
|
||||
const char *principal_s = NULL;
|
||||
const char *service = NULL;
|
||||
const char *user_ccache_file;
|
||||
|
||||
if (domain->alt_name == NULL) {
|
||||
@ -1325,12 +1317,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
|
||||
goto out;
|
||||
}
|
||||
|
||||
service = talloc_asprintf(tmp_ctx, "%s/%s@%s", KRB5_TGS_NAME, realm, realm);
|
||||
if (service == NULL) {
|
||||
result = NT_STATUS_NO_MEMORY;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (user_ccache_file != NULL) {
|
||||
|
||||
if (_krb5ccname != NULL) {
|
||||
@ -1340,7 +1326,6 @@ static NTSTATUS winbindd_dual_pam_auth_cached(struct winbindd_domain *domain,
|
||||
|
||||
result = add_ccache_to_list(principal_s,
|
||||
cc,
|
||||
service,
|
||||
user,
|
||||
pass,
|
||||
realm,
|
||||
|
@ -230,7 +230,6 @@ void ccache_remove_all_after_fork(void);
|
||||
void ccache_regain_all_now(void);
|
||||
NTSTATUS add_ccache_to_list(const char *princ_name,
|
||||
const char *ccname,
|
||||
const char *service,
|
||||
const char *username,
|
||||
const char *password,
|
||||
const char *realm,
|
||||
|
Loading…
Reference in New Issue
Block a user