diff options
Diffstat (limited to 'src/kadmin/cli/keytab.c')
| -rw-r--r-- | src/kadmin/cli/keytab.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/kadmin/cli/keytab.c b/src/kadmin/cli/keytab.c index 5a47bf159b..df4f6ce257 100644 --- a/src/kadmin/cli/keytab.c +++ b/src/kadmin/cli/keytab.c @@ -23,6 +23,7 @@ static int remove_principal(char *keytab_str, krb5_keytab keytab, char *princ_str, char *kvno_str); static char *etype_string(krb5_enctype enctype); +extern char *krb5_defkeyname; extern char *whoami; extern krb5_context context; extern void *handle; @@ -44,15 +45,10 @@ int process_keytab(krb5_context context, char **keytab_str, int code; if (*keytab_str == NULL) { - char *keytab_str = malloc(BUFSIZ); - - if (keytab_str == NULL) { - com_err(whoami, ENOMEM, "while creating default keytab name"); - return 1; - } - if ((code = krb5_kt_default_name(context, keytab_str, BUFSIZ))) { - com_err(whoami, code, "while copying default keytab name"); - free(*keytab_str); + /* XXX krb5_defkeyname is an internal library global and + should go away */ + if (! (*keytab_str = strdup(krb5_defkeyname))) { + com_err(whoami, ENOMEM, "while creating keytab name"); return 1; } code = krb5_kt_default(context, keytab); |
