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