From 861b79b48caefbf578b03a9f027e415176fc4faa Mon Sep 17 00:00:00 2001 From: Richard Russon Date: Mon, 27 Aug 2018 00:28:55 +0100 Subject: [PATCH] clean up on exit --- main.c | 3 ++- ncrypt/crypt_mod.c | 14 ++++++++++++++ ncrypt/ncrypt.h | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 3b3cbffcf..5cd767a81 100644 --- a/main.c +++ b/main.c @@ -1215,7 +1215,6 @@ int main(int argc, char *argv[], char *envp[]) log_queue_empty(); mutt_log_stop(); cs_free(&Config); - mutt_window_free(); // TEST43: neomutt (no change to mailbox) // TEST44: neomutt (change mailbox) } @@ -1230,6 +1229,8 @@ main_curses: if (repeat_error && ErrorBufMessage) puts(ErrorBuf); main_exit: + crypto_module_free(); + mutt_window_free(); mutt_envlist_free(); mutt_free_opts(); mutt_free_keys(); diff --git a/ncrypt/crypt_mod.c b/ncrypt/crypt_mod.c index 110c9be22..0d7c504e2 100644 --- a/ncrypt/crypt_mod.c +++ b/ncrypt/crypt_mod.c @@ -73,3 +73,17 @@ struct CryptModuleSpecs *crypto_module_lookup(int identifier) } return NULL; } + +/** + * crypto_module_free - Clean up the crypto modules + */ +void crypto_module_free(void) +{ + struct CryptModule *np = NULL, *tmp = NULL; + STAILQ_FOREACH_SAFE(np, &CryptModules, entries, tmp) + { + STAILQ_REMOVE(&CryptModules, np, CryptModule, entries); + FREE(&np); + } +} + diff --git a/ncrypt/ncrypt.h b/ncrypt/ncrypt.h index 58dc7368f..588e70f03 100644 --- a/ncrypt/ncrypt.h +++ b/ncrypt/ncrypt.h @@ -211,4 +211,7 @@ void crypt_smime_getkeys(struct Envelope *env); int crypt_smime_send_menu(struct Header *msg); int crypt_smime_verify_sender(struct Header *h); +/* crypt_mod.c */ +void crypto_module_free(void); + #endif /* _NCRYPT_NCRYPT_H */ -- 2.40.0