summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2012-06-03 20:35:53 -0400
committerGreg Hudson <ghudson@mit.edu>2012-06-03 20:35:53 -0400
commit51d406d8317aa9954cedb4f396303af8fcbef2f0 (patch)
tree8cef85e4725da67a0f5198f96c019ec7e22fc492 /src
parent990d7a78c3d4109ab2bbfa44cae5a20afb4ae253 (diff)
downloadkrb5-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.c12
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;
}
/*