diff options
author | Richard Levitte <levitte@openssl.org> | 2016-05-04 14:44:10 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-05-04 14:56:58 +0200 |
commit | c73aa309049c4f04ec81f0f1cf552eab8456a16e (patch) | |
tree | e2088eb5d6a80c113b94ea8d933a2c4037e2cc34 | |
parent | e6c5dbc8e82214f659d5b905d7b4a04a8d1faa8d (diff) |
Check return of PEM_write_* functions and report possible errors
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1025)
-rw-r--r-- | apps/pkcs12.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/pkcs12.c b/apps/pkcs12.c index 406b10328a..af5f670ba3 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -674,6 +674,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, PKCS8_PRIV_KEY_INFO *p8; X509 *x509; STACK_OF(X509_ATTRIBUTE) *attrs; + int ret = 0; attrs = PKCS12_SAFEBAG_get0_attrs(bag); @@ -688,7 +689,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, if ((pkey = EVP_PKCS82PKEY(p8)) == NULL) return 0; print_attribs(out, PKCS8_pkey_get0_attrs(p8), "Key Attributes"); - PEM_write_bio_PrivateKey(out, pkey, enc, NULL, 0, NULL, pempass); + ret = PEM_write_bio_PrivateKey(out, pkey, enc, NULL, 0, NULL, pempass); EVP_PKEY_free(pkey); break; @@ -713,7 +714,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, } print_attribs(out, PKCS8_pkey_get0_attrs(p8), "Key Attributes"); PKCS8_PRIV_KEY_INFO_free(p8); - PEM_write_bio_PrivateKey(out, pkey, enc, NULL, 0, NULL, pempass); + ret = PEM_write_bio_PrivateKey(out, pkey, enc, NULL, 0, NULL, pempass); EVP_PKEY_free(pkey); break; @@ -733,7 +734,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, if ((x509 = PKCS12_SAFEBAG_get1_cert(bag)) == NULL) return 0; dump_cert_text(out, x509); - PEM_write_bio_X509(out, x509); + ret = PEM_write_bio_X509(out, x509); X509_free(x509); break; @@ -750,7 +751,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, BIO_printf(bio_err, "\n"); return 1; } - return 1; + return ret; } /* Given a single certificate return a verified chain or NULL if error */ |