]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
pkeyutil: check return value reading password
authorPauli <paul.dale@oracle.com>
Wed, 19 Aug 2020 03:40:22 +0000 (13:40 +1000)
committerPauli <paul.dale@oracle.com>
Thu, 20 Aug 2020 06:07:10 +0000 (16:07 +1000)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12678)

apps/pkeyutl.c

index 4de2a5659048ef76aa31da2761810c7b6f5eeab6..9bfef87311261af57fa43593020fea64ec8f325a 100644 (file)
@@ -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");