This is the mail archive of the pthreads-win32@sourceware.cygnus.com mailing list for the pthreas-win32 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

'pthread_mutex_destroy' memory leak report


Dear pthreads colleagues,

Purify has recently reported to me a memory leak that originated in my
pthread mutex adapter class. I have investigated deeper into the code and
here are my findings:

===
file: pthreads_dir/mutex.c
line: 91
func: pthread_mutex_init

  mx = (pthread_mutex_t) calloc(1, sizeof(*mx));

---
file: pthreads_dir/mutex.c
line: ?
func: pthread_mutex_destroy

No corresponding free (to the calloc above).

===

My advice is to insert 'free(mx)' call into 'pthread_mutex_destroy' function
before returning status to the caller (if mx has reasonable value, of
course) as follows:

===
file: pthreads_dir/mutex.c
line: 197 - 204
func: pthread_mutex_destroy

  if (result == 0)
    {
      mx->mutex = 0;
      free (mx);
      *mutex = NULL;
    }

  return(result);
===

(Or am I missing something?)
Hope this helps,
Best regards,
	Milan G.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]