Bug 13375 - nscd inhibits HOSTALIASES envvar
Summary: nscd inhibits HOSTALIASES envvar
Status: NEW
Alias: None
Product: glibc
Classification: Unclassified
Component: nscd (show other bugs)
Version: 2.14
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
Depends on:
Reported: 2011-11-02 15:36 UTC by Michael Matz
Modified: 2014-06-27 11:41 UTC (History)
1 user (show)

See Also:
Last reconfirmed:
fweimer: security-


Note You need to log in before you can comment on or make changes to this bug.
Description Michael Matz 2011-11-02 15:36:03 UTC
Make sure nscd is running and indeed caching hosts database lookups (not the
case with debian for instance), then:

% HOSTALIASES=./fooalias strace getent hosts bla 2>&1 | grep fooalias

shows that the file isn't accessed.  It is accessed if nscd isn't running
(and in that case is correctly interpreted).  getent is just a convenient
shorthand for a testcase, the gethostbyname interface behaves the same,
i.e. doesn't lookup HOSTALIASES files when nscd is running.  But according
to the manpage it should.  I think it's an extension, not POSIX behaviour,
but one side needs to be fixed, either docu or code.

FWIW, the environment variable isn't respected because res_hostalias
isn't called, because __libc_res_nquery isn't called, because the
nscd-accessing routines are called first.
Comment 1 Michael Matz 2011-11-02 15:38:17 UTC
Oh, for reference, this came in as
  https://bugzilla.novell.com/show_bug.cgi?id=727360 .
Comment 2 brian.cain 2011-11-15 19:16:29 UTC
I can confirm that disabling nscd does indeed workaround the problem.  If this is the expected behavior, is there another environment-variable style override to bypass nscd lookup, similar to HOSTALIASES?