From: Dmitry Belyavskiy Date: Sat, 18 Aug 2018 16:43:23 +0000 (+0300) Subject: Do not ignore EVP_PKEY_print_public/EVP_PKEY_print_private return values X-Git-Tag: OpenSSL_1_1_1~83 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c87af534e6387dda5b81c762c83b19d014f156b2;p=oweals%2Fopenssl.git Do not ignore EVP_PKEY_print_public/EVP_PKEY_print_private return values Reviewed-by: Kurt Roeckx Reviewed-by: Nicola Tuveri (Merged from https://github.com/openssl/openssl/pull/7007) --- diff --git a/apps/pkey.c b/apps/pkey.c index 760fc1bbc0..0dd5590bdc 100644 --- a/apps/pkey.c +++ b/apps/pkey.c @@ -186,23 +186,29 @@ int pkey_main(int argc, char **argv) if (!noout) { if (outformat == FORMAT_PEM) { if (pubout) { - PEM_write_bio_PUBKEY(out, pkey); + if (!PEM_write_bio_PUBKEY(out, pkey)) + goto end; } else { assert(private); - if (traditional) - PEM_write_bio_PrivateKey_traditional(out, pkey, cipher, - NULL, 0, NULL, - passout); - else - PEM_write_bio_PrivateKey(out, pkey, cipher, - NULL, 0, NULL, passout); + if (traditional) { + if (!PEM_write_bio_PrivateKey_traditional(out, pkey, cipher, + NULL, 0, NULL, + passout)) + goto end; + } else { + if (!PEM_write_bio_PrivateKey(out, pkey, cipher, + NULL, 0, NULL, passout)) + goto end; + } } } else if (outformat == FORMAT_ASN1) { if (pubout) { - i2d_PUBKEY_bio(out, pkey); + if (!i2d_PUBKEY_bio(out, pkey)) + goto end; } else { assert(private); - i2d_PrivateKey_bio(out, pkey); + if (!i2d_PrivateKey_bio(out, pkey)) + goto end; } } else { BIO_printf(bio_err, "Bad format specified for key\n"); @@ -212,10 +218,12 @@ int pkey_main(int argc, char **argv) if (text) { if (pubtext) { - EVP_PKEY_print_public(out, pkey, 0, NULL); + if (EVP_PKEY_print_public(out, pkey, 0, NULL) <= 0) + goto end; } else { assert(private); - EVP_PKEY_print_private(out, pkey, 0, NULL); + if (EVP_PKEY_print_private(out, pkey, 0, NULL) <= 0) + goto end; } }