1.46.2. RHBA-2011:1034: glibc bug fix update

Updated glibc packages that fix multiple bugs are now available for Red Hat Enterprise Linux 5.
The glibc packages provide the standard C and standard math libraries used by multiple programs on the system. Without these libraries, the Linux system cannot function correctly.
This update fixes the following bugs:
* Prior to this update, SELinux stopped the worker module on 64-bit architectures, which prevented servers from loading. This was caused by the executable stack not being allocated when the first 4 GB of the address space were exhausted. This modifies the code so that servers now load correctly. (BZ#448011)
* Prior to this update, the dynamic loader generated an incorrect ordering for initialization according to the ELF specification. Initialization routines for depended-upon objects were not being called before the objects, which depended on them, were initialized. This manifested itself only when initializing compiled C++ libraries whose global initialization depended upon the global initialization of data in other libraries which were linked against at link time, generating a DT_NEEDED entry. This update modifies the topological sort algorithm for dependency resolution. Now, functions for initialization and termination are ordered correctly. (BZ#604796)
* Prior to this update, the expansion of the "$ORIGIN" dynamic string token in "RPATH" elements for privileged programs was disabled. Due to this problem, certain libraries such as gconv did not work correctly. This update re-enables this feature for libraries. Now, the libraries work as expected. (BZ#670988)
* Prior to this update, the resolver failed to return all addresses of multi-homed hosts in /etc/hosts. Now, getaddrinfo correctly initializes the resolver state on the first call. (BZ#676039)
* Prior to this update, the PHTREAD_CANCEL_DISABLE could, under certain conditions, fail to prevent thread cancellations. Due to this problem, pthread_cancel could cancel input/output (I/O) like write and read calls while PTHREAD_CANCEL_DISABLE was in effect. With this update, the cancellations work as expected. (BZ#684808)
* Prior to this update, the glibc libraries could fail to allocate enough memory for the expanded strings when expanding the dynamic string tokens in load paths for the dynamic linker or in module names for the "dlopen" function. Due to this behavior, certain applications could freeze or terminate unexpectedly with an error message. This update modifies the underlying source code to allocate enough memory for the expanded strings. (BZ#694655)
All users of glibc are advised to upgrade to these updated packages, which fix these bugs.