summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/apps.h18
-rw-r--r--apps/openssl.c3
2 files changed, 13 insertions, 8 deletions
diff --git a/apps/apps.h b/apps/apps.h
index 7f3903478f..34935bde42 100644
--- a/apps/apps.h
+++ b/apps/apps.h
@@ -116,26 +116,30 @@ extern BIO *bio_err;
#endif
#if defined(MONOLITH) && !defined(OPENSSL_C)
-# define apps_startup() do_pipe_sig()
+# define apps_startup() \
+ do_pipe_sig()
+# define apps_shutdown()
#else
# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN16) || \
defined(OPENSSL_SYS_WIN32)
# ifdef _O_BINARY
# define apps_startup() \
- _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \
+ do { _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \
OpenSSL_add_all_algorithms(); ENGINE_load_builtin_engines(); \
- setup_ui_method();
+ setup_ui_method(); } while(0)
# else
# define apps_startup() \
- _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \
+ do { _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \
OpenSSL_add_all_algorithms(); ENGINE_load_builtin_engines(); \
- setup_ui_method();
+ setup_ui_method(); } while(0)
# endif
# else
# define apps_startup() \
- do_pipe_sig(); OpenSSL_add_all_algorithms(); \
- ENGINE_load_builtin_engines(); setup_ui_method();
+ do { do_pipe_sig(); OpenSSL_add_all_algorithms(); \
+ ENGINE_load_builtin_engines(); setup_ui_method(); } while(0)
# endif
+# define apps_shutdown() \
+ destroy_ui_method()
#endif
typedef struct args_st
diff --git a/apps/openssl.c b/apps/openssl.c
index 3b4374a048..22bd52ffed 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -350,7 +350,8 @@ end:
ERR_free_strings();
ENGINE_cleanup();
- destroy_ui_method();
+
+ apps_shutdown();
CRYPTO_mem_leaks(bio_err);
if (bio_err != NULL)