tzload memory leak?

Joel Tornatore Joel.Tornatore at Eng.Sun.COM
Fri Apr 23 17:21:05 UTC 1993


Stephen,

I have been out the for the last week (since 4/16, as
a matter of fact.....Santa Fe was great!) so if this
problem has not been resolved, please let me know.

The problem was noticed in Solaris 2.0, and fixed in
a patch to SunOS 4.1.3. You will also notice that the
tzfile being used is opened and read for each call to
tzset(), and the memory was not being freed.

I can get you a new libc if necessary.

joel


> From eubank at predict.com Fri Apr 16 16:58 PDT 1993
> To: tz at elsie.nci.nih.gov
> Subject: tzload memory leak?
> 
> I've been using an application (under SunOS 4.1.3)
> which switches time zones frequently.
> It has a memory leak which I think I've tracked down to tzload,
> which I call via tzset. Since it would hardly be noticeable to anyone
> who didn't happen to be using (or abusing) tzset thousands of times,
> I wouldn't be surprised if it hadn't been noticed before. On the off
> chance that someone out there has encountered it, can you send me
> pointers to patches, workarounds, etc.? I can't switch to Solaris yet.
> 
> Here are some details:
> I profile this code:
> 
> #include <time.h>
> 
> main()
> {
> 	int i;
> 	for (i=0; i<100; i++) {
> 		tzset();
> 	}
> }
> 
> 
> and find that malloc is called roughly 400 times, while free is called
> roughly 300 times. If I increase the number of iterations in the loop 
> tp 1000, the calls to malloc and free go up by a factor of 10. malloc is
> being called from calloc, which is being called from allocall, which is
> being called from tzload. It looks to me like tzload allocates 4 things
> and only frees 3 of them each time it is called. 
> 
> Thanks for any help you can give me.
> 
> Stephen Eubank
> eubank at predict.com
> 



More information about the tz mailing list