I have an engine implementation that overrides some basic functionality (RAND, 
RSA, DSA).  However, after calling ENGINE_Cleanup() I notice I have  memory 
leak.

The stack has ENGINE_Cleanup() calling up to the following:

CRYPTO_free_ex_data(CRYPTO_EX_INDEX_ENGINE, e, &e->ex_data);

which then ends up in the static int_free_ex_data function, which sets:

item = def_get_class(class_index)

where def_get_class returns the result of:

OPENSSL_malloc(sizeof(EX_CLASS_ITEM));

However, in int_free_ex_data, "item" is never freed.

I do not use ex_data in my engine, so is this a bug in OpenSSL, or is there 
something I need to do to make this behave properly?

  Thanks!
....................................
Erik Tkal
Juniper OAC/UAC/Pulse Development

Reply via email to