From 3d7026d52ffc59f513b79fd07371f8d04145734e Mon Sep 17 00:00:00 2001 From: Nikolay Shaplov Date: Sun, 5 Jan 2025 23:54:46 +0300 Subject: [PATCH] Fix memory leaks: should free $ssl each time we reset connection, and free both $ssl and $ctx when server object is destroyed --- t/local/66_curves.t | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/t/local/66_curves.t b/t/local/66_curves.t index 43026867..40e30311 100644 --- a/t/local/66_curves.t +++ b/t/local/66_curves.t @@ -172,11 +172,18 @@ sub _handshake { Net::SSLeay::BIO_new(Net::SSLeay::BIO_s_mem()), ); Net::SSLeay::set_bio($ssl,$bio[0],$bio[1]); + Net::SSLeay::free($self->{ssl}) if $self->{ssl}; # call SSL_free() on old ssl value; $self->{ssl} = $ssl; $self->{rbio} = $bio[0]; $self->{wbio} = $bio[1]; } + sub DESTROY { + my $self = shift; + Net::SSLeay::free($self->{ssl}) if $self->{ssl}; # call SSL_free() on old ssl value; + Net::SSLeay::CTX_free($self->{ctx}) if $self->{ctx}; # free old ctx value; + } + sub _error { my ($self,$rv) = @_; if ($rv>0) {