From 1dcb99f0f7d0efe70c82fcc70728276444848cda Mon Sep 17 00:00:00 2001 From: Gisle Vanem Date: Mon, 11 Jun 2007 04:33:21 +0000 Subject: [PATCH] constify 'hostname' in init_thread_sync_data(). Simply clear the whole 'tsd' structure on exit in destroy_thread_sync_data(). --- lib/hostthre.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/hostthre.c b/lib/hostthre.c index 15f6b3fd7..aebed8b38 100644 --- a/lib/hostthre.c +++ b/lib/hostthre.c @@ -179,28 +179,21 @@ struct thread_sync_data { static void destroy_thread_sync_data(struct thread_sync_data * tsd) { - if (tsd->hostname) { + if (tsd->hostname) free(tsd->hostname); - tsd->hostname = NULL; - } - if (tsd->event_terminate) { + if (tsd->event_terminate) CloseHandle(tsd->event_terminate); - tsd->event_terminate = NULL; - } - if (tsd->mutex_terminate) { + if (tsd->mutex_terminate) CloseHandle(tsd->mutex_terminate); - tsd->mutex_terminate = NULL; - } - if (tsd->mutex_waiting) { + if (tsd->mutex_waiting) CloseHandle(tsd->mutex_waiting); - tsd->mutex_waiting = NULL; - } + memset(tsd,0,sizeof(*tsd)); } /* Initialize resolver thread synchronization data */ static BOOL init_thread_sync_data(struct thread_data * td, - char * hostname, + const char * hostname, struct thread_sync_data * tsd) { HANDLE curr_proc = GetCurrentProcess(); @@ -293,6 +286,7 @@ static unsigned __stdcall gethostbyname_thread (void *arg) * due to a resolver timeout. */ struct thread_sync_data tsd = { 0,0,0,NULL }; + if (!init_thread_sync_data(td, conn->async.hostname, &tsd)) { /* thread synchronization data initialization failed */ return (unsigned)-1; @@ -353,6 +347,7 @@ static unsigned __stdcall getaddrinfo_thread (void *arg) * due to a resolver timeout. */ struct thread_sync_data tsd = { 0,0,0,NULL }; + if (!init_thread_sync_data(td, conn->async.hostname, &tsd)) { /* thread synchronization data initialization failed */ return -1;