diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2015-06-18 21:40:46 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2015-06-23 09:37:28 +0000 |
commit | b57525f1a376149840f740a31535681c07152ba4 (patch) | |
tree | c520a3234fda67b9c99562eb1b06e090e9cc2bb5 /NEWS | |
parent | 47852c972d1ad80d8b38d9e94507b27df0ede421 (diff) | |
download | glibc-b57525f1a376149840f740a31535681c07152ba4.zip glibc-b57525f1a376149840f740a31535681c07152ba4.tar.gz glibc-b57525f1a376149840f740a31535681c07152ba4.tar.bz2 |
Fix potential hanging of gethostbyaddr_r/gethostbyname_r
When "reorder" resolver option is enabled, threads of a multi-threaded process
could hang in gethostbyaddr_r, gethostbyname_r, or gethostbyname2_r.
Due to a trivial bug in _res_hconf_reorder_addrs, simultaneous
invocations of this function in a multi-threaded process could result to
_res_hconf_reorder_addrs returning without releasing the lock it holds,
causing other threads to block indefinitely while waiting for the lock
that is not going to be released.
[BZ #17977]
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Fix unlocking
when initializing interface list, based on the bug analysis
and the patch proposed by Eric Newton.
* resolv/tst-res_hconf_reorder.c: New test.
* resolv/Makefile [$(have-thread-library) = yes] (tests): Add
tst-res_hconf_reorder.
($(objpfx)tst-res_hconf_reorder): Depend on $(libdl)
and $(shared-thread-library).
(tst-res_hconf_reorder-ENV): New variable.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -14,16 +14,16 @@ Version 2.22 16560, 16704, 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, 17523, 17542, 17569, 17581, 17588, 17596, 17620, 17621, 17628, 17631, 17692, 17711, 17715, 17776, 17779, 17792, 17836, 17912, 17916, 17930, - 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, - 17996, 17998, 17999, 18007, 18019, 18020, 18029, 18030, 18032, 18034, - 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18049, 18068, 18080, - 18093, 18100, 18104, 18110, 18111, 18116, 18125, 18128, 18138, 18185, - 18196, 18197, 18206, 18210, 18211, 18217, 18220, 18221, 18234, 18244, - 18247, 18287, 18319, 18324, 18333, 18346, 18397, 18409, 18410, 18412, - 18418, 18422, 18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, - 18496, 18497, 18498, 18507, 18512, 18513, 18519, 18520, 18522, 18527, - 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, - 18544, 18545, 18546, 18547, 18553, 18558, 18569. + 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17977, 17978, 17987, + 17991, 17996, 17998, 17999, 18007, 18019, 18020, 18029, 18030, 18032, + 18034, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18049, 18068, + 18080, 18093, 18100, 18104, 18110, 18111, 18116, 18125, 18128, 18138, + 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18220, 18221, 18234, + 18244, 18247, 18287, 18319, 18324, 18333, 18346, 18397, 18409, 18410, + 18412, 18418, 18422, 18434, 18444, 18468, 18469, 18470, 18479, 18483, + 18495, 18496, 18497, 18498, 18507, 18512, 18513, 18519, 18520, 18522, + 18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, + 18542, 18544, 18545, 18546, 18547, 18553, 18558, 18569. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. |