mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 19:19:02 -04:00
m_ssl_openssl Add workaround for a memory leak in OpenSSL
This commit is contained in:
parent
903a0075d3
commit
b90f3aca13
@ -363,6 +363,14 @@ namespace OpenSSL
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int destroy(BIO* bio)
|
||||
{
|
||||
// XXX: Dummy function to avoid a memory leak in OpenSSL.
|
||||
// The memory leak happens in BIO_free() (bio_lib.c) when the destroy func of the BIO is NULL.
|
||||
// This is fixed in OpenSSL but some distros still ship the unpatched version hence we provide this workaround.
|
||||
return 1;
|
||||
}
|
||||
|
||||
static long ctrl(BIO* bio, int cmd, long num, void* ptr)
|
||||
{
|
||||
if (cmd == BIO_CTRL_FLUSH)
|
||||
@ -385,7 +393,7 @@ static BIO_METHOD biomethods =
|
||||
NULL, // gets
|
||||
OpenSSL::BIOMethod::ctrl,
|
||||
OpenSSL::BIOMethod::create,
|
||||
NULL, // destroy, NULL causes older OpenSSL to leak memory in BIO_free() (bio_lib.c)
|
||||
OpenSSL::BIOMethod::destroy, // destroy, does nothing, see function body for more info
|
||||
NULL // callback_ctrl
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user