use krb5_get_init_creds_opt_alloc/krb5_get_init_creds_opt_free
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12737 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -141,19 +141,21 @@ get_new_cache(krb5_context context,
|
||||
{
|
||||
krb5_error_code ret;
|
||||
krb5_creds cred;
|
||||
krb5_get_init_creds_opt opt;
|
||||
krb5_get_init_creds_opt *opt;
|
||||
krb5_ccache id;
|
||||
|
||||
krb5_get_init_creds_opt_init (&opt);
|
||||
ret = krb5_get_init_creds_opt_alloc (&opt);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
krb5_get_init_creds_opt_set_default_flags(context, "kadmin",
|
||||
krb5_principal_get_realm(context,
|
||||
client),
|
||||
&opt);
|
||||
opt);
|
||||
|
||||
|
||||
krb5_get_init_creds_opt_set_forwardable (&opt, FALSE);
|
||||
krb5_get_init_creds_opt_set_proxiable (&opt, FALSE);
|
||||
krb5_get_init_creds_opt_set_forwardable (opt, FALSE);
|
||||
krb5_get_init_creds_opt_set_proxiable (opt, FALSE);
|
||||
|
||||
if(password == NULL && prompter == NULL) {
|
||||
krb5_keytab kt;
|
||||
@@ -161,15 +163,17 @@ get_new_cache(krb5_context context,
|
||||
ret = krb5_kt_default(context, &kt);
|
||||
else
|
||||
ret = krb5_kt_resolve(context, keytab, &kt);
|
||||
if(ret)
|
||||
if(ret) {
|
||||
krb5_get_init_creds_opt_free(opt);
|
||||
return ret;
|
||||
}
|
||||
ret = krb5_get_init_creds_keytab (context,
|
||||
&cred,
|
||||
client,
|
||||
kt,
|
||||
0,
|
||||
server_name,
|
||||
&opt);
|
||||
opt);
|
||||
krb5_kt_close(context, kt);
|
||||
} else {
|
||||
ret = krb5_get_init_creds_password (context,
|
||||
@@ -180,8 +184,9 @@ get_new_cache(krb5_context context,
|
||||
NULL,
|
||||
0,
|
||||
server_name,
|
||||
&opt);
|
||||
opt);
|
||||
}
|
||||
krb5_get_init_creds_opt_free(opt);
|
||||
switch(ret){
|
||||
case 0:
|
||||
break;
|
||||
|
@@ -69,7 +69,7 @@ get_creds(krb5_context context, const char *keytab_str,
|
||||
krb5_keytab keytab;
|
||||
krb5_principal client;
|
||||
krb5_error_code ret;
|
||||
krb5_get_init_creds_opt init_opts;
|
||||
krb5_get_init_creds_opt *init_opts;
|
||||
krb5_creds creds;
|
||||
char *server;
|
||||
char keytab_buf[256];
|
||||
@@ -89,15 +89,17 @@ get_creds(krb5_context context, const char *keytab_str,
|
||||
KRB5_NT_SRV_HST, &client);
|
||||
if (ret) krb5_err(context, 1, ret, "krb5_sname_to_principal");
|
||||
|
||||
krb5_get_init_creds_opt_init(&init_opts);
|
||||
ret = krb5_get_init_creds_opt_alloc(&init_opts);
|
||||
if (ret) krb5_err(context, 1, ret, "krb5_get_init_creds_opt_alloc");
|
||||
|
||||
asprintf (&server, "%s/%s", IPROP_NAME, host);
|
||||
if (server == NULL)
|
||||
krb5_errx (context, 1, "malloc: no memory");
|
||||
|
||||
ret = krb5_get_init_creds_keytab(context, &creds, client, keytab,
|
||||
0, server, &init_opts);
|
||||
0, server, init_opts);
|
||||
free (server);
|
||||
krb5_get_init_creds_opt_free(init_opts);
|
||||
if(ret) krb5_err(context, 1, ret, "krb5_get_init_creds");
|
||||
|
||||
ret = krb5_kt_close(context, keytab);
|
||||
|
Reference in New Issue
Block a user