krb5: Do not write start_realm ccconfig twice
This commit is contained in:
@@ -851,23 +851,28 @@ krb5_cc_store_cred(krb5_context context,
|
||||
krb5_data realm;
|
||||
const char *cfg = "";
|
||||
|
||||
ret = (*id->ops->store)(context, id, creds);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Automatic cc_config-setting and other actions */
|
||||
if (krb5_principal_get_num_comp(context, creds->server) > 1 &&
|
||||
krb5_is_config_principal(context, creds->server))
|
||||
cfg = krb5_principal_get_comp_string(context, creds->server, 1);
|
||||
|
||||
if (id->cc_initialized && !id->cc_need_start_realm &&
|
||||
strcmp(cfg, "start_realm") == 0)
|
||||
return 0;
|
||||
|
||||
ret = (*id->ops->store)(context, id, creds);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (id->cc_initialized && !id->cc_start_tgt_stored &&
|
||||
id->cc_need_start_realm &&
|
||||
krb5_principal_is_root_krbtgt(context, creds->server)) {
|
||||
/* Mark the first root TGT's realm as the start realm */
|
||||
id->cc_start_tgt_stored = 1;
|
||||
id->cc_need_start_realm = 0;
|
||||
realm.length = strlen(creds->server->realm);
|
||||
realm.data = creds->server->realm;
|
||||
(void) krb5_cc_set_config(context, id, NULL, "start_realm", &realm);
|
||||
id->cc_need_start_realm = 0;
|
||||
} else if (id->cc_initialized && id->cc_start_tgt_stored &&
|
||||
!id->cc_kx509_done && strcmp(cfg, "kx509cert") == 0) {
|
||||
/*
|
||||
|
Reference in New Issue
Block a user