aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-01-09 21:52:40 +0000
committerUlrich Drepper <drepper@redhat.com>2008-01-09 21:52:40 +0000
commitf6bacb8ef4dfcee39864d6383e3660d8ac267d23 (patch)
tree44358c8479ad58985dd4270f7a7910c58d62e742
parentaa693c68be9fc19b88bef6806c77b8b4afa7a438 (diff)
downloadglibc-f6bacb8ef4dfcee39864d6383e3660d8ac267d23.zip
glibc-f6bacb8ef4dfcee39864d6383e3660d8ac267d23.tar.gz
glibc-f6bacb8ef4dfcee39864d6383e3660d8ac267d23.tar.bz2
[BZ #5541]
* sunrpc/rpc_thread.c (__rpc_thread_destroy): Also free xports and pollfd structures. Patch by André Cruz.
-rw-r--r--ChangeLog5
-rw-r--r--malloc/malloc.c3
-rw-r--r--sunrpc/rpc_thread.c2
3 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index eb842b9..d70e40a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2008-01-09 Ulrich Drepper <drepper@redhat.com>
+ [BZ #5541]
+ * sunrpc/rpc_thread.c (__rpc_thread_destroy): Also free xports and
+ pollfd structures.
+ Patch by André Cruz.
+
[BZ #5545]
* sunrpc/clnt_perr.c (clnt_sperror): Don't use fixed size buffer.
(clnt_spcreateerror): Likewise.
diff --git a/malloc/malloc.c b/malloc/malloc.c
index f0425bd..17dd0a9 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -3772,8 +3772,9 @@ public_mEMALIGn(size_t alignment, size_t bytes)
} else {
#if USE_ARENAS
/* ... or sbrk() has failed and there is still a chance to mmap() */
- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
+ mstate prev = ar_ptr->next ? ar_ptr : 0;
(void)mutex_unlock(&ar_ptr->mutex);
+ ar_ptr = arena_get2(prev, bytes);
if(ar_ptr) {
p = _int_memalign(ar_ptr, alignment, bytes);
(void)mutex_unlock(&ar_ptr->mutex);
diff --git a/sunrpc/rpc_thread.c b/sunrpc/rpc_thread.c
index 91e94c2..7a9cc9d 100644
--- a/sunrpc/rpc_thread.c
+++ b/sunrpc/rpc_thread.c
@@ -29,6 +29,8 @@ __rpc_thread_destroy (void)
free (tvp->svcraw_private_s);
free (tvp->authdes_cache_s);
free (tvp->authdes_lru_s);
+ free (tvp->svc_xports_s);
+ free (tvp->svc_pollfd_s);
if (tvp != &__libc_tsd_RPC_VARS_mem)
free (tvp);
__libc_tsd_set (RPC_VARS, NULL);