On Thu, Mar 16, 2017 at 10:37:43AM -0500, Nico Williams wrote:
> > 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?
> Probably just "what the author could think of at the time". ENODEV is
> not listed in the standard's man page for open(), so it's not surprising
> they missed that. ENOTDIR, ELOOP and ENAMETOOLONG should also be
> tolerated (it's "misconfiguration"). Maybe even ENXIO and EOVERFLOW.
But why bother? The message shown to the user is rather unhelpful -
without re-running the command through strace, it is impossible to know
which config file caused the error anyway. I think the only special case
is ENOENT which is "business as usual" - anything else should be
reported to the user for diagnosis (and the message should contain the
filename), but then the code should just continue. Reporting may be
slightly difficult here, because the logging setup may depend on the
configuration which has not been read yet...