diff options
author | Greg Hudson <ghudson@mit.edu> | 2012-06-03 20:35:53 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2012-06-03 20:35:53 -0400 |
commit | 51d406d8317aa9954cedb4f396303af8fcbef2f0 (patch) | |
tree | 8cef85e4725da67a0f5198f96c019ec7e22fc492 /src | |
parent | 990d7a78c3d4109ab2bbfa44cae5a20afb4ae253 (diff) | |
download | krb5-51d406d8317aa9954cedb4f396303af8fcbef2f0.tar.gz krb5-51d406d8317aa9954cedb4f396303af8fcbef2f0.tar.xz krb5-51d406d8317aa9954cedb4f396303af8fcbef2f0.zip |
Improve error message from krb5_kt_have_content
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/krb5/keytab/ktfns.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/krb5/keytab/ktfns.c b/src/lib/krb5/keytab/ktfns.c index e0c411efe..56343ad0a 100644 --- a/src/lib/krb5/keytab/ktfns.c +++ b/src/lib/krb5/keytab/ktfns.c @@ -104,6 +104,7 @@ krb5_kt_have_content(krb5_context context, krb5_keytab keytab) krb5_keytab_entry entry; krb5_kt_cursor cursor; krb5_error_code ret; + char name[1024]; /* If the keytab is not iterable, assume that it has content. */ if (keytab->ops->start_seq_get == NULL) @@ -112,13 +113,20 @@ krb5_kt_have_content(krb5_context context, krb5_keytab keytab) /* See if we can get at least one entry via iteration. */ ret = krb5_kt_start_seq_get(context, keytab, &cursor); if (ret) - return KRB5_KT_NOTFOUND; + goto no_entries; ret = krb5_kt_next_entry(context, keytab, &entry, &cursor); krb5_kt_end_seq_get(context, keytab, &cursor); if (ret) - return KRB5_KT_NOTFOUND; + goto no_entries; krb5_kt_free_entry(context, &entry); return 0; + +no_entries: + if (krb5_kt_get_name(context, keytab, name, sizeof(name)) == 0) { + krb5_set_error_message(context, KRB5_KT_NOTFOUND, + _("Keytab %s is nonexistent or empty"), name); + } + return KRB5_KT_NOTFOUND; } /* |