summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-07-04 03:49:52 +0000
committerKen Raeburn <raeburn@mit.edu>2007-07-04 03:49:52 +0000
commit743ecf4a6688efb9230fd739a4dcdb90e9cd51f8 (patch)
treed3a34bb598ba28a99cd3e33677533197e37b2dc6 /src/lib
parent55f4aca1a95f1c56d047c2b4222aa6587276bb7c (diff)
downloadkrb5-743ecf4a6688efb9230fd739a4dcdb90e9cd51f8.tar.gz
krb5-743ecf4a6688efb9230fd739a4dcdb90e9cd51f8.tar.xz
krb5-743ecf4a6688efb9230fd739a4dcdb90e9cd51f8.zip
In file-not-found case, report the filename sought
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19665 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/keytab/kt_file.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/lib/krb5/keytab/kt_file.c b/src/lib/krb5/keytab/kt_file.c
index fe44ff65ea..df0a80501f 100644
--- a/src/lib/krb5/keytab/kt_file.c
+++ b/src/lib/krb5/keytab/kt_file.c
@@ -1,7 +1,7 @@
/*
* lib/krb5/keytab/kt_file.c
*
- * Copyright 1990,1991,1995 by the Massachusetts Institute of Technology.
+ * Copyright 1990,1991,1995,2007 by the Massachusetts Institute of Technology.
* All Rights Reserved.
*
* Export of this software from the United States of America may
@@ -1068,10 +1068,23 @@ krb5_ktfileint_open(krb5_context context, krb5_keytab id, int mode)
errno = 0;
KTFILEP(id) = fopen(KTFILENAME(id), fopen_mode_rbplus);
if (!KTFILEP(id))
- return errno ? errno : EMFILE;
+ goto report_errno;
writevno = 1;
- } else /* some other error */
- return errno ? errno : EMFILE;
+ } else {
+ report_errno:
+ switch (errno) {
+ case 0:
+ /* XXX */
+ return EMFILE;
+ case ENOENT:
+ krb5_set_error_message(context, ENOENT,
+ "Key table file '%s' not found",
+ KTFILENAME(id));
+ return ENOENT;
+ default:
+ return errno;
+ }
+ }
}
if ((kerror = krb5_lock_file(context, fileno(KTFILEP(id)), mode))) {
(void) fclose(KTFILEP(id));