summaryrefslogtreecommitdiffstats
path: root/apps/lib/apps.c
diff options
context:
space:
mode:
authorwangyuhang <524413304@qq.com>2022-12-07 16:48:16 +0800
committerPauli <pauli@openssl.org>2022-12-12 07:24:35 +1100
commit4d4b5e10c2888fe3b27548a1ba6a594537a43091 (patch)
treeebb32b33d3c31a87b42fa0bc2681e0a51de798eb /apps/lib/apps.c
parentdb2fc00945bd128b873d9f66944dfde49f8a3853 (diff)
unbuffer stdin before get passwd from stdin
commond LD_LIBRARY_PATH= openssl rsa -aes256 -passout stdin <<< "xxxxxx” will get pass(fun app_get_pass()) from stdin first, and then load key(fun load_key()). but it unbuffer stdin before load key, this will cause the load key to fail. now unbuffer stdin before get pass, this will solve https://github.com/openssl/openssl/issues/19835 CLA: trivial Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19851) (cherry picked from commit efec0f4611ee854f2b0b3da0c135e839bf8e7d04)
Diffstat (limited to 'apps/lib/apps.c')
-rw-r--r--apps/lib/apps.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/apps/lib/apps.c b/apps/lib/apps.c
index 9d4c6c3c01..9a53a10932 100644
--- a/apps/lib/apps.c
+++ b/apps/lib/apps.c
@@ -298,6 +298,7 @@ static char *app_get_pass(const char *arg, int keepbio)
pwdbio = BIO_push(btmp, pwdbio);
#endif
} else if (strcmp(arg, "stdin") == 0) {
+ unbuffer(stdin);
pwdbio = dup_bio_in(FORMAT_TEXT);
if (pwdbio == NULL) {
BIO_printf(bio_err, "Can't open BIO for stdin\n");