diff --git a/src/crypto/oaes_lib.c b/src/crypto/oaes_lib.c index 4c144689..2cf598e0 100644 --- a/src/crypto/oaes_lib.c +++ b/src/crypto/oaes_lib.c @@ -639,7 +639,10 @@ static OAES_RET oaes_key_gen( OAES_CTX * ctx, size_t key_size ) _key->data = (uint8_t *) calloc( key_size, sizeof( uint8_t )); if( NULL == _key->data ) + { + free( _key ); return OAES_RET_MEM; + } for( _i = 0; _i < key_size; _i++ ) #ifdef OAES_HAVE_ISAAC diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h index 9a60f8a5..e0297c84 100644 --- a/src/mnemonics/language_base.h +++ b/src/mnemonics/language_base.h @@ -106,6 +106,12 @@ namespace Language trimmed_word_map = new std::unordered_map; unique_prefix_length = 4; } + virtual ~Base() + { + delete word_list; + delete word_map; + delete trimmed_word_map; + } /*! * \brief Returns a pointer to the word list. * \return A pointer to the word list.