RHBA-2009:1415: bug fix and enhancement update
79
• The
inet6_rth_reverse()
function produced an incorrect return order of addresses in
the routing header. This was caused by an incorrect identifier (
ip6r0_segleft
instead of
ip6r0_len
) in the
inet/inet6_rth.c
source code. This update corrects the identifier, ensuring
that
inet6_rth_reverse()
returns the correct output. (
BZ#494849
473
)
• The
inet6_rth_add()
function incorrectly returned
0
even when the routing header did not have
enough space to store an address. This was caused by a lack of error checking routines to verify
routing header size. This update applies an additional
if
statement to verify the routing header size.
(
BZ#494850
474
).
• Previous versions of
glibc
coded
malloc()
in a way that was not thread-safe. This could have
led to unexpected program crashes in some cases. This release revises the
malloc()
code to
ensure better thread safety, as well as to adhere to C standards. (
BZ#502901
475
)
• This update removes an extra comma at the end of the
dlfcn.h
header file's enumerator list. This
typographical error caused
dlfcn.h
to fail
g++
pedantic tests in previous releases. (
BZ#504704
476
)
• A bug in the
nptl/pthread_mutex_lock.c
code prevented
pthread_mutex
calls from
honoring some types of private futex attributes. This update applies a patch that corrects this
behavior, ensuring that
pthread_mutex
calls honor all types of private futex attributes for PI
mutexes.(
BZ#495955
477
).
• Applications that performed a large number of directory reads ran much slower on 64-bit Red Hat
Enterprise Linux 5 compared to 64-bit Red Hat Enterprise Linux 4. This was partly because while
Red Hat Enterprise Linux 5 uses the system call
getdents()
to retrieve directory entries for both
32-bit and 64-bit platforms, Red Hat Enterprise Linux 4 used
getdents64()
for 64-bit platforms.
Because of this, the
opendir()
function did not allocate more memory for directory reads on
64-bit platforms, resulting in much slower reads on Red Hat Enterprise Linux 5. To resolve this,
opendir()
now has an increased default buffer size; if memory allocation fails (as it would on
32-bit applications), it retries the memory allocation with a smaller buffer size. This improves the
performance of directory reads on 64-bit platforms, while ensuring that
opendir()
still works on
32-bit platforms. (
BZ#484440
478
)
• An incorrect parameter in the
MALLOC_COPY()
function of the
libc/malloc/malloc.c
source
file could supply an incorrect
size_t
value for
realloc()
. With this update,
MALLOC_COPY()
is now fixed, ensuring that it always supplies the correct
size_t
information for
realloc()
.
(
BZ#478499
479
)
• With this update, users can now run
fork()
safely in one thread while a
pthread
stack cache
updates in another thread. Doing so no longer causes the process created by
fork()
to crash.
(
BZ#477705
480
)
• This update also applies several upstream fixes to
nscd
. These fixes prevent
nscd
from crashing
due to segmentation faults in some cases. (
BZ#464918
481
and
483636
482
)
• This update also includes the ability to enable (and configure) per-thread memory pools. This
capability enables higher scalability accross many sockets and cores, and is included in this release
as a technology preview. The environmental variable
MALLOC_PER_THREAD=1
enables per-
thread memory pools, while
MALLOC_ARENA_MAX
and
MALLOC_ARENA_TEST
control the amount
of additional memory used for the memory pools (if any).
MALLOC_ARENA_MAX
sets a maximum
number of memory pools used, regardless of the number of cores;
MALLOC_ARENA_TEST
specifies
that the number of cores should be tested once it reaches a set value. Note that once per-thread
Содержание ENTERPRISE 5.4 RELEASE NOTES
Страница 1: ...Red Hat Enterprise Linux 5 4 Technical Notes Every Change to Every Package ...
Страница 18: ...xviii ...
Страница 306: ...288 ...
Страница 464: ...446 ...
Страница 466: ...448 ...