From 931d5b4b27fcc907e3ff4d4328c59a5f285a44fb Mon Sep 17 00:00:00 2001 From: "Dr. David von Oheimb" Date: Tue, 24 Nov 2020 16:16:08 +0100 Subject: [PATCH] apps/cmp.c: fix crash with -batch option on OPENSSL_NO_UI_CONSOLE Also make clear we cannot use get_ui_method() at this point. Fixes #13494 Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/13497) --- apps/cmp.c | 7 ++----- apps/include/apps_ui.h | 2 +- apps/lib/apps_ui.c | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/apps/cmp.c b/apps/cmp.c index 68edfd88daa..17173374dfe 100644 --- a/apps/cmp.c +++ b/apps/cmp.c @@ -2698,13 +2698,10 @@ int cmp_main(int argc, char **argv) ret = 0; if (opt_batch) { - UI_METHOD *ui_fallback_method; #ifndef OPENSSL_NO_UI_CONSOLE - ui_fallback_method = UI_OpenSSL(); -#else - ui_fallback_method = (UI_METHOD *)UI_null(); + UI_method_set_reader(UI_OpenSSL(), NULL); + /* can't change get_ui_method() here as load_key_certs_crls() uses it */ #endif - UI_method_set_reader(ui_fallback_method, NULL); } if (opt_engine != NULL) diff --git a/apps/include/apps_ui.h b/apps/include/apps_ui.h index 67d61e13965..59a82d5ecb0 100644 --- a/apps/include/apps_ui.h +++ b/apps/include/apps_ui.h @@ -21,7 +21,7 @@ int password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_data); int setup_ui_method(void); void destroy_ui_method(void); -const UI_METHOD *get_ui_method(void); +UI_METHOD *get_ui_method(void); extern BIO *bio_err; diff --git a/apps/lib/apps_ui.c b/apps/lib/apps_ui.c index 880e9a4f6d8..6c8c3de1967 100644 --- a/apps/lib/apps_ui.c +++ b/apps/lib/apps_ui.c @@ -136,7 +136,7 @@ void destroy_ui_method(void) } } -const UI_METHOD *get_ui_method(void) +UI_METHOD *get_ui_method(void) { return ui_method; } -- 2.47.3