diff --git a/apps/asn1pars.c b/apps/asn1pars.c index 108ed7daa0..4918bcb1c0 100644 --- a/apps/asn1pars.c +++ b/apps/asn1pars.c @@ -329,6 +329,7 @@ end: if (at != NULL) ASN1_TYPE_free(at); if (osk != NULL) sk_free(osk); OBJ_cleanup(); + apps_shutdown(); EXIT(ret); } diff --git a/apps/ciphers.c b/apps/ciphers.c index c3bd859d68..2d6e104790 100644 --- a/apps/ciphers.c +++ b/apps/ciphers.c @@ -202,6 +202,7 @@ end: if (ctx != NULL) SSL_CTX_free(ctx); if (ssl != NULL) SSL_free(ssl); if (STDout != NULL) BIO_free_all(STDout); + apps_shutdown(); EXIT(ret); } diff --git a/apps/crl.c b/apps/crl.c index fb36ed5d02..82ef8ce1f6 100644 --- a/apps/crl.c +++ b/apps/crl.c @@ -364,6 +364,7 @@ end: X509_STORE_CTX_cleanup(&ctx); X509_STORE_free(store); } + apps_shutdown(); EXIT(ret); } diff --git a/apps/crl2p7.c b/apps/crl2p7.c index 36d8afee6f..8729068462 100644 --- a/apps/crl2p7.c +++ b/apps/crl2p7.c @@ -166,7 +166,8 @@ bad: BIO_printf(bio_err," -certfile arg certificates file of chain to a trusted CA\n"); BIO_printf(bio_err," (can be used more than once)\n"); BIO_printf(bio_err," -nocrl no crl to load, just certs from '-certfile'\n"); - EXIT(1); + ret = 1; + goto end; } ERR_load_crypto_strings(); @@ -278,6 +279,7 @@ end: if (p7 != NULL) PKCS7_free(p7); if (crl != NULL) X509_CRL_free(crl); + apps_shutdown(); EXIT(ret); } diff --git a/apps/dgst.c b/apps/dgst.c index 1fbef6bed2..e3edf302c3 100644 --- a/apps/dgst.c +++ b/apps/dgst.c @@ -347,6 +347,7 @@ end: EVP_PKEY_free(sigkey); if(sigbuf) OPENSSL_free(sigbuf); if (bmd != NULL) BIO_free(bmd); + apps_shutdown(); EXIT(err); } diff --git a/apps/dh.c b/apps/dh.c index 20581f6649..603ea5b496 100644 --- a/apps/dh.c +++ b/apps/dh.c @@ -330,6 +330,7 @@ end: if (in != NULL) BIO_free(in); if (out != NULL) BIO_free_all(out); if (dh != NULL) DH_free(dh); + apps_shutdown(); EXIT(ret); } #endif diff --git a/apps/dhparam.c b/apps/dhparam.c index 51aee97d25..00cf87bf6d 100644 --- a/apps/dhparam.c +++ b/apps/dhparam.c @@ -516,6 +516,7 @@ end: if (in != NULL) BIO_free(in); if (out != NULL) BIO_free_all(out); if (dh != NULL) DH_free(dh); + apps_shutdown(); EXIT(ret); } diff --git a/apps/dsa.c b/apps/dsa.c index f18d13da03..09ddb23996 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -304,6 +304,7 @@ end: if(dsa != NULL) DSA_free(dsa); if(passin) OPENSSL_free(passin); if(passout) OPENSSL_free(passout); + apps_shutdown(); EXIT(ret); } #endif diff --git a/apps/dsaparam.c b/apps/dsaparam.c index 983cd04329..4196413217 100644 --- a/apps/dsaparam.c +++ b/apps/dsaparam.c @@ -368,6 +368,7 @@ end: if (in != NULL) BIO_free(in); if (out != NULL) BIO_free_all(out); if (dsa != NULL) DSA_free(dsa); + apps_shutdown(); EXIT(ret); } diff --git a/apps/enc.c b/apps/enc.c index ac3014b24c..49cae7579c 100644 --- a/apps/enc.c +++ b/apps/enc.c @@ -575,6 +575,7 @@ end: if (benc != NULL) BIO_free(benc); if (b64 != NULL) BIO_free(b64); if(pass) OPENSSL_free(pass); + apps_shutdown(); EXIT(ret); } diff --git a/apps/engine.c b/apps/engine.c index 537aefd131..1308b6b7f1 100644 --- a/apps/engine.c +++ b/apps/engine.c @@ -486,5 +486,6 @@ end: sk_pop_free(pre_cmds, identity); sk_pop_free(post_cmds, identity); if (bio_out != NULL) BIO_free_all(bio_out); + apps_shutdown(); EXIT(ret); } diff --git a/apps/errstr.c b/apps/errstr.c index c411effcd0..fedb568d68 100644 --- a/apps/errstr.c +++ b/apps/errstr.c @@ -121,5 +121,6 @@ int MAIN(int argc, char **argv) ret++; } } + apps_shutdown(); EXIT(ret); } diff --git a/apps/gendh.c b/apps/gendh.c index 14928d84a3..e8f8493c5f 100644 --- a/apps/gendh.c +++ b/apps/gendh.c @@ -195,6 +195,7 @@ end: ERR_print_errors(bio_err); if (out != NULL) BIO_free_all(out); if (dh != NULL) DH_free(dh); + apps_shutdown(); EXIT(ret); } diff --git a/apps/gendsa.c b/apps/gendsa.c index 57ef0da46d..b990eecbd2 100644 --- a/apps/gendsa.c +++ b/apps/gendsa.c @@ -231,6 +231,7 @@ end: if (out != NULL) BIO_free_all(out); if (dsa != NULL) DSA_free(dsa); if(passout) OPENSSL_free(passout); + apps_shutdown(); EXIT(ret); } #endif diff --git a/apps/genrsa.c b/apps/genrsa.c index dfcb523eba..a5669de7ce 100644 --- a/apps/genrsa.c +++ b/apps/genrsa.c @@ -242,6 +242,7 @@ err: if(passout) OPENSSL_free(passout); if (ret != 0) ERR_print_errors(bio_err); + apps_shutdown(); EXIT(ret); } diff --git a/apps/passwd.c b/apps/passwd.c index 750a3cb39d..5e7195f13b 100644 --- a/apps/passwd.c +++ b/apps/passwd.c @@ -289,6 +289,7 @@ err: BIO_free(in); if (out) BIO_free_all(out); + apps_shutdown(); EXIT(ret); } diff --git a/apps/pkcs7.c b/apps/pkcs7.c index f3df25fe8b..a0b21341f5 100644 --- a/apps/pkcs7.c +++ b/apps/pkcs7.c @@ -163,7 +163,8 @@ bad: BIO_printf(bio_err," -text print full details of certificates\n"); BIO_printf(bio_err," -noout don't output encoded data\n"); BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n"); - EXIT(1); + ret = 1; + goto end; } ERR_load_crypto_strings(); @@ -300,5 +301,6 @@ end: if (p7 != NULL) PKCS7_free(p7); if (in != NULL) BIO_free(in); if (out != NULL) BIO_free_all(out); + apps_shutdown(); EXIT(ret); } diff --git a/apps/rand.c b/apps/rand.c index 10adf0e95d..faba057b77 100644 --- a/apps/rand.c +++ b/apps/rand.c @@ -157,5 +157,6 @@ err: ERR_print_errors(bio_err); if (out) BIO_free_all(out); + apps_shutdown(); EXIT(ret); } diff --git a/apps/rsa.c b/apps/rsa.c index 5b671e135e..18964fedd2 100644 --- a/apps/rsa.c +++ b/apps/rsa.c @@ -400,6 +400,7 @@ end: if(rsa != NULL) RSA_free(rsa); if(passin) OPENSSL_free(passin); if(passout) OPENSSL_free(passout); + apps_shutdown(); EXIT(ret); } #else /* !OPENSSL_NO_RSA */ diff --git a/apps/s_client.c b/apps/s_client.c index 009aa83e4e..ac5d2f10c2 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -803,6 +803,7 @@ end: BIO_free(bio_c_out); bio_c_out=NULL; } + apps_shutdown(); EXIT(ret); } diff --git a/apps/s_server.c b/apps/s_server.c index 11971cb8c9..6ed23490f1 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -799,6 +799,7 @@ end: BIO_free(bio_s_out); bio_s_out=NULL; } + apps_shutdown(); EXIT(ret); } diff --git a/apps/s_time.c b/apps/s_time.c index 3bdf898882..0e2f4566c9 100644 --- a/apps/s_time.c +++ b/apps/s_time.c @@ -443,7 +443,6 @@ int MAIN(int argc, char **argv) if (tm_cipher == NULL ) { fprintf( stderr, "No CIPHER specified\n" ); -/* EXIT(1); */ } if (!(perform & 1)) goto next; @@ -610,6 +609,7 @@ end: SSL_CTX_free(tm_ctx); tm_ctx=NULL; } + apps_shutdown(); EXIT(ret); } diff --git a/apps/sess_id.c b/apps/sess_id.c index 7f5c55b901..41c3b3f4a3 100644 --- a/apps/sess_id.c +++ b/apps/sess_id.c @@ -272,6 +272,7 @@ bad: end: if (out != NULL) BIO_free_all(out); if (x != NULL) SSL_SESSION_free(x); + apps_shutdown(); EXIT(ret); } diff --git a/apps/speed.c b/apps/speed.c index dbf7732a2a..a7842cecd0 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -1470,6 +1470,7 @@ end: if (dsa_key[i] != NULL) DSA_free(dsa_key[i]); #endif + apps_shutdown(); EXIT(mret); } diff --git a/apps/version.c b/apps/version.c index efa0d0d493..65b5935c9c 100644 --- a/apps/version.c +++ b/apps/version.c @@ -131,5 +131,6 @@ int MAIN(int argc, char **argv) if (cflags) printf("%s\n",SSLeay_version(SSLEAY_CFLAGS)); if (dir) printf("%s\n",SSLeay_version(SSLEAY_DIR)); end: + apps_shutdown(); EXIT(ret); } diff --git a/apps/x509.c b/apps/x509.c index b2e4ec631f..8a392d813a 100644 --- a/apps/x509.c +++ b/apps/x509.c @@ -1009,6 +1009,7 @@ end: sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free); sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free); if (passin) OPENSSL_free(passin); + apps_shutdown(); EXIT(ret); }