glibc/nss
Torvald Riegel 6f9d4f595e Fix incorrect double-checked locking related to _res_hconf.initialized.
_res_hconf.initialized was not suitable for use in a multi-threaded
environment due to the lack of atomics and memory barriers.  Use of it was
also unnecessary because _res_hconf_init did the right thing by using
__libc_once.  This patch fixes the glibc-internal uses by just calling
_res_hconf_init unconditionally, and switches to a release MO atomic store
for _res_hconf.initialized to fix the glibc side of the synchronization
problem (which will maintain backward compatibility, but cannot fix the
lack of acquire MO on any glibc-external loads).

	[BZ #20477]
	* resolv/res_hconf.c (do_init): Use atomic access.
	* resolv/res_hconf.h: Add comments.
	* nscd/aicache.c (addhstaiX): Call _res_hconf_init unconditionally.
	* nss/getXXbyYY_r.c (REENTRANT_NAME): Likewise.
	* sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
2016-08-18 20:53:37 +02:00
..
nss_db
nss_files
alias-lookup.c
bug17079.c
bug-erange.c
databases.def
db-Makefile
Depend
digits_dots.c
ethers-lookup.c
function.def
getent.c
getnssent_r.c
getnssent.c
getXXbyYY_r.c
getXXbyYY.c
getXXent_r.c
getXXent.c
grp-lookup.c
hosts-lookup.c
key-lookup.c
makedb.c
Makefile
netgrp-lookup.c
network-lookup.c
nss_test1.c
nss.h
nsswitch.c
nsswitch.conf
nsswitch.h
proto-lookup.c
pwd-lookup.c
rewrite_field.c
rpc-lookup.c
service-lookup.c
sgrp-lookup.c
spwd-lookup.c
test-digits-dots.c
test-netdb.c
tst-field.c
tst-nss-getpwent.c
tst-nss-static.c
tst-nss-test1.c
valid_field.c
valid_list_field.c
Versions
XXX-lookup.c