From: Richard Russon Date: Sun, 26 Aug 2018 23:28:55 +0000 (+0100) Subject: clean up on exit X-Git-Tag: 2019-10-25~679 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=861b79b48caefbf578b03a9f027e415176fc4faa;p=neomutt clean up on exit --- 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 */