When ~/.krb5/config is not available (AFS) many kerberos commands like
klist and afslog abort.

open("/afs/nada.kth.se/home/w/whatever/.krb5/config", O_RDONLY) = -1 ENODEV (No 
such device)
write(2, "klist: ", 7klist: )                  = 7
write(2, "krb5_init_context failed: 19", 28krb5_init_context failed: 19) = 28
write(2, "\n", 1
)                       = 1
exit_group(1)                           = ?
+++ exited with 1 +++

This seems to some clause in ./lib/krb5/context.c where ENODEV is
considered fatal (ENOENT, EACCES, EPERM are not). Is there
some reasoning behind what error is "fatal" and what not?

krb5_set_config_files(krb5_context context, char **filenames)
{
    krb5_error_code ret;
    krb5_config_binding *tmp = NULL;
    while(filenames != NULL && *filenames != NULL && **filenames != '\0') {
        ret = krb5_config_parse_file_multi(context, *filenames, &tmp);
        if(ret != 0 && ret != ENOENT && ret != EACCES && ret != EPERM) {
            krb5_config_file_free(context, tmp);
            return ret;
        }
        filenames++;
    }
#

Harald.

Reply via email to