diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c index 96d2d65a..c813dcf0 100644 --- a/src/omemo/omemo.c +++ b/src/omemo/omemo.c @@ -127,6 +127,15 @@ omemo_init(void) omemo_ctx.fingerprint_ac = autocomplete_new(); } +void +omemo_close(void) +{ + if (omemo_ctx.fingerprint_ac) { + autocomplete_free(omemo_ctx.fingerprint_ac); + omemo_ctx.fingerprint_ac = NULL; + } +} + void omemo_on_connect(ProfAccount *account) { diff --git a/src/omemo/omemo.h b/src/omemo/omemo.h index ae25b5ba..abe21be5 100644 --- a/src/omemo/omemo.h +++ b/src/omemo/omemo.h @@ -56,6 +56,7 @@ typedef struct omemo_key { } omemo_key_t; void omemo_init(void); +void omemo_close(void); void omemo_on_connect(ProfAccount *account); void omemo_on_disconnect(void); void omemo_generate_crypto_materials(ProfAccount *account); diff --git a/src/profanity.c b/src/profanity.c index a9824729..324aa36d 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -241,6 +241,9 @@ _shutdown(void) #endif #ifdef HAVE_LIBGPGME p_gpg_close(); +#endif +#ifdef HAVE_OMEMO + omemo_close(); #endif chat_log_close(); theme_close();