summaryrefslogtreecommitdiffstats
path: root/src/kadmin/cli
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-06-08 18:18:03 +0000
committerGreg Hudson <ghudson@mit.edu>2010-06-08 18:18:03 +0000
commite948df8c7ba8174337437b47dd2de2c14e98e19f (patch)
tree685b6c38be48bce8d54986dec61b33ee8abb55fd /src/kadmin/cli
parent27388a63d966366d9265ee96898c44e975c57c6c (diff)
downloadkrb5-e948df8c7ba8174337437b47dd2de2c14e98e19f.tar.gz
krb5-e948df8c7ba8174337437b47dd2de2c14e98e19f.tar.xz
krb5-e948df8c7ba8174337437b47dd2de2c14e98e19f.zip
kadmin ktadd may display wrong name of default keytab
kadmin's ktadd (and ktrem) displays WRFILE:/etc/krb5.keytab whenever it uses the default keytab, even if the default has been overridden (e.g. by KRB5_KTNAME). Use krb5_kt_get_name to get the correct name of the default cache instead of displaying the string we think was used to open it. ticket: 6740 target_version: 1.8.2 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24123 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/cli')
-rw-r--r--src/kadmin/cli/kadmin.h1
-rw-r--r--src/kadmin/cli/keytab.c10
2 files changed, 7 insertions, 4 deletions
diff --git a/src/kadmin/cli/kadmin.h b/src/kadmin/cli/kadmin.h
index 5c9decc7da..9f657a646f 100644
--- a/src/kadmin/cli/kadmin.h
+++ b/src/kadmin/cli/kadmin.h
@@ -68,7 +68,6 @@ extern time_t get_date(char *);
/* Yucky global variables */
extern krb5_context context;
-extern char *krb5_defkeyname;
extern char *whoami;
extern void *handle;
diff --git a/src/kadmin/cli/keytab.c b/src/kadmin/cli/keytab.c
index 8b291100ea..3a7867f46d 100644
--- a/src/kadmin/cli/keytab.c
+++ b/src/kadmin/cli/keytab.c
@@ -84,9 +84,7 @@ process_keytab(krb5_context my_context, char **keytab_str,
char *name = *keytab_str;
if (name == NULL) {
- /* XXX krb5_defkeyname is an internal library global and
- should go away */
- name = strdup(krb5_defkeyname);
+ name = malloc(BUFSIZ);
if (!name) {
com_err(whoami, ENOMEM, "while creating keytab name");
return 1;
@@ -97,6 +95,12 @@ process_keytab(krb5_context my_context, char **keytab_str,
free(name);
return 1;
}
+ code = krb5_kt_get_name(my_context, *keytab, name, BUFSIZ);
+ if (code != 0) {
+ com_err(whoami, code, "while getting keytab name");
+ free(name);
+ return 1;
+ }
} else {
if (strchr(name, ':') != NULL)
name = strdup(name);