History log of /seL4-camkes-master/projects/musllibc/src/passwd/nscd_query.c
Revision Date Author Comments
# 39494a27 13-Jul-2016 Rich Felker <dalias@aerifal.cx>

revert unrelated change that slipped into last commit


# cff5747c 13-Jul-2016 Rich Felker <dalias@aerifal.cx>

fix regression in tcsetattr on all mips archs

revert commit 8c316e9e49d37ad92c2e7493e16166a2afca419f. it was wrong
and does not match how the kernel API works.


# bd1eacea 09-Jun-2015 Rich Felker <dalias@aerifal.cx>

fix spurious errors from pwd/grp functions when nscd backend is absent

for several pwd/grp functions, the only way the caller can distinguish
between a successful negative result ("no such user/group") and an
internal error is by clearing errno before the call and checking errno
afterwards. the nscd backend support code correctly simulated a
not-found response on systems where such a backend is not running, but
failed to restore errno.

this commit also fixed an outdated/incorrect comment.


# 4b5ca13f 15-Mar-2015 Rich Felker <dalias@aerifal.cx>

avoid sending huge names as nscd passwd/group queries

overly long user/group names are potentially a DoS vector and source
of other problems like partial writes by sendmsg, and not useful.


# 49d1e7f9 15-Mar-2015 Rich Felker <dalias@aerifal.cx>

simplify nscd lookup code for alt passwd/group backends

previously, a sentinel value of (FILE *)-1 was used to inform the
caller of __nscd_query that nscd is not in use. aside from being an
ugly hack, this resulted in duplicate code paths for two logically
equivalent cases: no nscd, and "not found" result from nscd.

now, __nscd_query simply skips closing the socket and returns a valid
FILE pointer when nscd is not in use, and produces a fake "not found"
response header. the caller is then responsible for closing the socket
just like it would do if it had gotten a real "not found" response.


# 34b423d2 22-Feb-2015 Josiah Worcester <josiahw@gmail.com>

support alternate backends for the passwd and group dbs

when we fail to find the entry in the commonly accepted files, we
query a server over a Unix domain socket on /var/run/nscd/socket.
the protocol used here is compatible with glibc's nscd protocol on
most systems (all that use 32-bit numbers for all the protocol fields,
which appears to be everything but Alpha).