use krb5_get_init_creds_opt_alloc/krb5_get_init_creds_opt_free

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12733 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2003-09-02 23:45:38 +00:00
parent eb2c032414
commit ae9f3656f7

View File

@@ -406,7 +406,7 @@ get_new_tickets(krb5_context context,
krb5_deltat ticket_life) krb5_deltat ticket_life)
{ {
krb5_error_code ret; krb5_error_code ret;
krb5_get_init_creds_opt opt; krb5_get_init_creds_opt *opt;
krb5_addresses no_addrs; krb5_addresses no_addrs;
krb5_creds cred; krb5_creds cred;
char passwd[256]; char passwd[256];
@@ -415,23 +415,25 @@ get_new_tickets(krb5_context context,
memset(&cred, 0, sizeof(cred)); memset(&cred, 0, sizeof(cred));
krb5_get_init_creds_opt_init (&opt); ret = krb5_get_init_creds_opt_alloc (&opt);
if (ret)
krb5_err(context, 1, ret, "krb5_get_init_creds_opt_alloc");
krb5_get_init_creds_opt_set_default_flags(context, "kinit", krb5_get_init_creds_opt_set_default_flags(context, "kinit",
/* XXX */principal->realm, &opt); /* XXX */principal->realm, opt);
if(forwardable_flag != -1) if(forwardable_flag != -1)
krb5_get_init_creds_opt_set_forwardable (&opt, forwardable_flag); krb5_get_init_creds_opt_set_forwardable (opt, forwardable_flag);
if(proxiable_flag != -1) if(proxiable_flag != -1)
krb5_get_init_creds_opt_set_proxiable (&opt, proxiable_flag); krb5_get_init_creds_opt_set_proxiable (opt, proxiable_flag);
if(anonymous_flag != -1) if(anonymous_flag != -1)
krb5_get_init_creds_opt_set_anonymous (&opt, anonymous_flag); krb5_get_init_creds_opt_set_anonymous (opt, anonymous_flag);
if (!addrs_flag) { if (!addrs_flag) {
no_addrs.len = 0; no_addrs.len = 0;
no_addrs.val = NULL; no_addrs.val = NULL;
krb5_get_init_creds_opt_set_address_list (&opt, &no_addrs); krb5_get_init_creds_opt_set_address_list (opt, &no_addrs);
} }
if(renew_life) { if(renew_life) {
@@ -439,13 +441,13 @@ get_new_tickets(krb5_context context,
if (renew < 0) if (renew < 0)
errx (1, "unparsable time: %s", renew_life); errx (1, "unparsable time: %s", renew_life);
krb5_get_init_creds_opt_set_renew_life (&opt, renew); krb5_get_init_creds_opt_set_renew_life (opt, renew);
} else if (renewable_flag == 1) } else if (renewable_flag == 1)
krb5_get_init_creds_opt_set_renew_life (&opt, 1 << 30); krb5_get_init_creds_opt_set_renew_life (opt, 1 << 30);
if(ticket_life != 0) if(ticket_life != 0)
krb5_get_init_creds_opt_set_tkt_life (&opt, ticket_life); krb5_get_init_creds_opt_set_tkt_life (opt, ticket_life);
if(start_str) { if(start_str) {
int tmp = parse_time (start_str, "s"); int tmp = parse_time (start_str, "s");
@@ -468,7 +470,7 @@ get_new_tickets(krb5_context context,
if(ret) if(ret)
errx(1, "unrecognized enctype: %s", etype_str.strings[i]); errx(1, "unrecognized enctype: %s", etype_str.strings[i]);
} }
krb5_get_init_creds_opt_set_etype_list(&opt, enctype, krb5_get_init_creds_opt_set_etype_list(opt, enctype,
etype_str.num_strings); etype_str.num_strings);
} }
@@ -486,7 +488,7 @@ get_new_tickets(krb5_context context,
kt, kt,
start_time, start_time,
server, server,
&opt); opt);
krb5_kt_close(context, kt); krb5_kt_close(context, kt);
} else { } else {
char *p, *prompt; char *p, *prompt;
@@ -510,8 +512,9 @@ get_new_tickets(krb5_context context,
NULL, NULL,
start_time, start_time,
server, server,
&opt); opt);
} }
krb5_get_init_creds_opt_free(opt);
#ifdef KRB4 #ifdef KRB4
if (ret == KRB5KRB_AP_ERR_V4_REPLY || ret == KRB5_KDC_UNREACH) { if (ret == KRB5KRB_AP_ERR_V4_REPLY || ret == KRB5_KDC_UNREACH) {
int exit_val; int exit_val;