summaryrefslogtreecommitdiffstats
path: root/apps/pkeyutl.c
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2020-08-19 13:40:22 +1000
committerPauli <paul.dale@oracle.com>2020-08-20 16:07:10 +1000
commitffcdb24b13590190e92c7f88e2ad3e0a721408f2 (patch)
tree8b157f825ff564babfa45cc9500de72183be44c3 /apps/pkeyutl.c
parent16486f6332410d0d9e8f2606abb970d32b0572d3 (diff)
pkeyutil: check return value reading password
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12678)
Diffstat (limited to 'apps/pkeyutl.c')
-rw-r--r--apps/pkeyutl.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c
index 4de2a56590..9bfef87311 100644
--- a/apps/pkeyutl.c
+++ b/apps/pkeyutl.c
@@ -331,9 +331,18 @@ int pkeyutl_main(int argc, char **argv)
if (passin == NULL) {
/* Get password interactively */
char passwd_buf[4096];
+ int r;
+
BIO_snprintf(passwd_buf, sizeof(passwd_buf), "Enter %s: ", opt);
- EVP_read_pw_string(passwd_buf, sizeof(passwd_buf) - 1,
- passwd_buf, 0);
+ r = EVP_read_pw_string(passwd_buf, sizeof(passwd_buf) - 1,
+ passwd_buf, 0);
+ if (r < 0) {
+ if (r == -2)
+ BIO_puts(bio_err, "user abort\n");
+ else
+ BIO_puts(bio_err, "entry failed\n");
+ goto end;
+ }
passwd = OPENSSL_strdup(passwd_buf);
if (passwd == NULL) {
BIO_puts(bio_err, "out of memory\n");