diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sunrpc/rpc_thread.c | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index ad0fee629a..24546f573a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-05-04 Ulrich Drepper <drepper@redhat.com> + * sunrpc/rpc_thread.c (__rpc_thread_destroy): Don't skip entire + cleanup for initial thread, just the free call on TVP. + * nscd/gai.c (__getline): Define. diff --git a/sunrpc/rpc_thread.c b/sunrpc/rpc_thread.c index fbc1cf72fe..91e94c2eab 100644 --- a/sunrpc/rpc_thread.c +++ b/sunrpc/rpc_thread.c @@ -20,7 +20,7 @@ __rpc_thread_destroy (void) { struct rpc_thread_variables *tvp = __libc_tsd_get (RPC_VARS); - if (tvp != NULL && tvp != &__libc_tsd_RPC_VARS_mem) { + if (tvp != NULL) { __rpc_thread_svc_cleanup (); __rpc_thread_clnt_cleanup (); __rpc_thread_key_cleanup (); @@ -29,7 +29,8 @@ __rpc_thread_destroy (void) free (tvp->svcraw_private_s); free (tvp->authdes_cache_s); free (tvp->authdes_lru_s); - free (tvp); + if (tvp != &__libc_tsd_RPC_VARS_mem) + free (tvp); __libc_tsd_set (RPC_VARS, NULL); } } |