From: Dr. David von Oheimb Date: Tue, 24 Nov 2020 15:16:08 +0000 (+0100) Subject: apps/cmp.c: fix crash with -batch option on OPENSSL_NO_UI_CONSOLE X-Git-Tag: openssl-3.0.0-alpha9~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=931d5b4b27fcc907e3ff4d4328c59a5f285a44fb;p=thirdparty%2Fopenssl.git 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) --- 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; }