RHBA-2009:0080 - Bug Fix Advisory
glibc bug fix and enhancement update
Bug Fix Advisory
Updated glibc packages that fix several bugs and add enhancements are now
The GNU C Library (glibc) packages contain the standard C libraries used by
This update fixes the following bugs:
- on certain architectures, when using large applications with hundreds of
threads, the _mcount() function or socket system calls may have corrupted
the stack pointer or, potentially, caused heap corruption and application
segmentation faults. In this update, the _mcount() function and socket
system calls correctly calculate the stack pointer, resolving this issue.
- a bug in pthread_condattr_setclock(), which caused problems (and hangs)
for certain applications using POSIX threads, has been resolved.
- inconv() incorrectly transliterated l with stroke and L with stroke.
These characters are transliterated correctly in this update.
- a bug in "sprof", which caused problems for dlopen(), resulting in
errors such as "sprof: failed to load shared object", has been resolved.
- when attempting to allocate memory, the valloc() and pvalloc() functions
sometimes failed and returned the ENOMEM signal, even when sufficient
memory was available in arenas other than main, or vice versa. In this
update, valloc() and pvalloc() also try to allocate memory from other
arenas, resolving this issue.
- the info pages incorrectly stated that setenv() and putenv() were thread
safe. Using these in multi-threaded programs may have caused segmentation
faults. The info pages have been updated to reflect that setenv() and
putenv() are not thread safe.
- a problem in qsort(), which caused poor application performance on 64-bit
systems in comparison to 32-bit systems, has been resolved.
- performance issues in malloc() have been resolved. This may have caused
- a race condition, which may have led to segmentation violations on
certain systems, has been resolved.
- a bug in yp_order(), which caused it to always return order 0, has been
- certain configurations in "/etc/nscd.conf" resulted in commands, such as
"ping", returning a "Floating point exception (core dumped)" error. Also,
"trap divide" errors were logged to "/var/log/messages". This update adds
more robust handling for "/etc/nscd.conf", which resolves this issue.
- when 12 or more shared libraries all used Thread Local Storage (TLS),
dynamic thread local storage either misbehaved or crashed. This caused
applications using TLS to function incorrectly. In this update, large
numbers of shared libraries are all able to use TLS, resolving this issue.
Also, this update adds the following enhancements:
- private futexes are now available, increasing performance for certain
- maths optimizations for the IBM POWER4 and POWER6.
- an optimized memset() routine for AMD64 and Intel 64 systems has been
Users of glibc are advised to upgrade to these updated packages, which
resolve these issues and add these enhancements.
Before applying this update, make sure that all previously-released
errata relevant to your system have been applied.
This update is available via Red Hat Network. Details on how to use
the Red Hat Network to apply this update are available at
- Red Hat Enterprise Linux Server 5 x86_64
- Red Hat Enterprise Linux Server 5 ia64
- Red Hat Enterprise Linux Server 5 i386
- Red Hat Enterprise Linux Workstation 5 x86_64
- Red Hat Enterprise Linux Workstation 5 i386
- Red Hat Enterprise Linux Desktop 5 x86_64
- Red Hat Enterprise Linux Desktop 5 i386
- Red Hat Enterprise Linux for IBM z Systems 5 s390x
- Red Hat Enterprise Linux for Power, big endian 5 ppc
- Red Hat Enterprise Linux Server from RHUI 5 x86_64
- Red Hat Enterprise Linux Server from RHUI 5 i386
- BZ - 435182 - [RHEL5] poor 64 bit Intel performance on sorting program
- BZ - 435519 - [RHEL5] yp_order always returns order 0
- BZ - 438456 - [RHEL5] certain nscd configuration causes trap divide errors
- BZ - 443827 - iconv incorrectly transliterates the polish characters "?" and "?"
- BZ - 458861 - [RHEL5] sprof is unable to dlopen shared libraries
- BZ - 460154 - Performance issue with malloc on RHEL5
- BZ - 461481 - [5.2] valloc() fails with ENOMEM without trying to use arenas
- BZ - 478716 - Static /etc/hosts entries ignored after update to 5.3
Red Hat Enterprise Linux Server 5
Red Hat Enterprise Linux Workstation 5
Red Hat Enterprise Linux Desktop 5
Red Hat Enterprise Linux for IBM z Systems 5
Red Hat Enterprise Linux for Power, big endian 5
Red Hat Enterprise Linux Server from RHUI 5