mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
Fix small UI issues
- in EVP_read_pw_string_min(), the return value from UI_add_* wasn't properly checked - in UI_process(), |state| was never made NULL, which means an error when closing the session wouldn't be accurately reported. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/3849)
This commit is contained in:
parent
67f060acef
commit
b96dba9e5e
@ -48,7 +48,7 @@ int EVP_read_pw_string(char *buf, int len, const char *prompt, int verify)
|
||||
int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt,
|
||||
int verify)
|
||||
{
|
||||
int ret;
|
||||
int ret = -1;
|
||||
char buff[BUFSIZ];
|
||||
UI *ui;
|
||||
|
||||
@ -56,16 +56,18 @@ int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt,
|
||||
prompt = prompt_string;
|
||||
ui = UI_new();
|
||||
if (ui == NULL)
|
||||
return -1;
|
||||
UI_add_input_string(ui, prompt, 0, buf, min,
|
||||
(len >= BUFSIZ) ? BUFSIZ - 1 : len);
|
||||
if (verify)
|
||||
UI_add_verify_string(ui, prompt, 0,
|
||||
buff, min, (len >= BUFSIZ) ? BUFSIZ - 1 : len,
|
||||
buf);
|
||||
return ret;
|
||||
if (UI_add_input_string(ui, prompt, 0, buf, min,
|
||||
(len >= BUFSIZ) ? BUFSIZ - 1 : len) < 0
|
||||
|| (verify
|
||||
&& UI_add_verify_string(ui, prompt, 0, buff, min,
|
||||
(len >= BUFSIZ) ? BUFSIZ - 1 : len,
|
||||
buf) < 0))
|
||||
goto end;
|
||||
ret = UI_process(ui);
|
||||
UI_free(ui);
|
||||
OPENSSL_cleanse(buff, BUFSIZ);
|
||||
end:
|
||||
UI_free(ui);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -515,6 +515,8 @@ int UI_process(UI *ui)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
state = NULL;
|
||||
err:
|
||||
if (ui->meth->ui_close_session != NULL
|
||||
&& ui->meth->ui_close_session(ui) <= 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user