[Vm-dev] Memory leak in the SqueakSSL plugin on unix
Levente Uzonyi
leves at elte.hu
Thu Oct 17 18:02:04 UTC 2013
Seems like the end of the message got lost. So here's the full message
again:
Hello,
we've been experiencing memory leakage in long running Squeak images using
SqueakSSL. After a bit of monitoring I found that 132 bytes get leaked
for each https request done from the image. After a bit of code review,
I've probably found the culprit, and another potential source of memory
leak. For the reference, the source file this mail is about is
http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/branches/Cog/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c?revision=2713&view=markup
The main memory leak is in sqDestroySSL function (starting on line 117),
which doesn't free the bioRead and bioWrite variables (allocated by
sqCreateSSL on line 98-99) of the ssl object. My suggested solution is to
insert the following two lines before line 132:
BIO_free_all(ssl->bioRead);
BIO_free_all(ssl->bioWrite);
The other potential source of memory leak is sqSetStringPropertySSL
(starting on line 381). It allocates a chunk of memory on line 389, but
doesn't use nor free it, if the propID argument is not
SQSSL_PROP_CERTNAME. My suggested solution is to insert the following line
after line 396:
if(property) free(property);
Note that I haven't tested any of these, but I hope someone who is more
into VM building right now will try them.
Cheers,
Levente
More information about the Vm-dev
mailing list