BIO_free() returns immediately when the sole input is NULL.
Index: lib/libssl/src/apps/apps.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/apps.c,v retrieving revision 1.68 diff -u -p -d -r1.68 apps.c --- lib/libssl/src/apps/apps.c 19 Jul 2014 03:40:26 -0000 1.68 +++ lib/libssl/src/apps/apps.c 22 Jul 2014 05:14:46 -0000 @@ -669,8 +669,7 @@ end: BIO_printf(err, "unable to load certificate\n"); ERR_print_errors(err); } - if (cert != NULL) - BIO_free(cert); + BIO_free(cert); return (x); } @@ -745,8 +744,7 @@ load_key(BIO *err, const char *file, int goto end; } end: - if (key != NULL) - BIO_free(key); + BIO_free(key); if (pkey == NULL) { BIO_printf(err, "unable to load %s\n", key_descrip); ERR_print_errors(err); @@ -833,8 +831,7 @@ load_pubkey(BIO *err, const char *file, } end: - if (key != NULL) - BIO_free(key); + BIO_free(key); if (pkey == NULL) BIO_printf(err, "unable to load %s\n", key_descrip); return (pkey); Index: lib/libssl/src/apps/dh.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/dh.c,v retrieving revision 1.25 diff -u -p -d -r1.25 dh.c --- lib/libssl/src/apps/dh.c 14 Jul 2014 00:35:10 -0000 1.25 +++ lib/libssl/src/apps/dh.c 22 Jul 2014 05:14:46 -0000 @@ -297,8 +297,7 @@ bad: ret = 0; end: - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (dh != NULL) Index: lib/libssl/src/apps/dhparam.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/dhparam.c,v retrieving revision 1.33 diff -u -p -d -r1.33 dhparam.c --- lib/libssl/src/apps/dhparam.c 14 Jul 2014 00:35:10 -0000 1.33 +++ lib/libssl/src/apps/dhparam.c 22 Jul 2014 05:14:47 -0000 @@ -441,8 +441,7 @@ bad: ret = 0; end: - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (dh != NULL) Index: lib/libssl/src/apps/dsa.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/dsa.c,v retrieving revision 1.28 diff -u -p -d -r1.28 dsa.c --- lib/libssl/src/apps/dsa.c 14 Jul 2014 00:35:10 -0000 1.28 +++ lib/libssl/src/apps/dsa.c 22 Jul 2014 05:14:55 -0000 @@ -320,8 +320,7 @@ bad: } else ret = 0; end: - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (dsa != NULL) Index: lib/libssl/src/apps/dsaparam.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/dsaparam.c,v retrieving revision 1.34 diff -u -p -d -r1.34 dsaparam.c --- lib/libssl/src/apps/dsaparam.c 14 Jul 2014 00:35:10 -0000 1.34 +++ lib/libssl/src/apps/dsaparam.c 22 Jul 2014 05:15:02 -0000 @@ -382,8 +382,7 @@ bad: ret = 0; end: - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (dsa != NULL) Index: lib/libssl/src/apps/ec.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/ec.c,v retrieving revision 1.16 diff -u -p -d -r1.16 ec.c --- lib/libssl/src/apps/ec.c 14 Jul 2014 00:35:10 -0000 1.16 +++ lib/libssl/src/apps/ec.c 22 Jul 2014 05:15:02 -0000 @@ -328,8 +328,7 @@ bad: } else ret = 0; end: - if (in) - BIO_free(in); + BIO_free(in); if (out) BIO_free_all(out); if (eckey) Index: lib/libssl/src/apps/ecparam.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/ecparam.c,v retrieving revision 1.23 diff -u -p -d -r1.23 ecparam.c --- lib/libssl/src/apps/ecparam.c 14 Jul 2014 00:35:10 -0000 1.23 +++ lib/libssl/src/apps/ecparam.c 22 Jul 2014 05:15:03 -0000 @@ -578,8 +578,7 @@ end: if (ec_cofactor) BN_free(ec_cofactor); free(buffer); - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (group != NULL) Index: lib/libssl/src/apps/enc.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/enc.c,v retrieving revision 1.38 diff -u -p -d -r1.38 enc.c --- lib/libssl/src/apps/enc.c 14 Jul 2014 00:35:10 -0000 1.38 +++ lib/libssl/src/apps/enc.c 22 Jul 2014 05:15:04 -0000 @@ -600,17 +600,13 @@ end: ERR_print_errors(bio_err); free(strbuf); free(buff); - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); - if (benc != NULL) - BIO_free(benc); - if (b64 != NULL) - BIO_free(b64); + BIO_free(benc); + BIO_free(b64); #ifdef ZLIB - if (bzl != NULL) - BIO_free(bzl); + BIO_free(bzl); #endif free(pass); Index: lib/libssl/src/apps/gendsa.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/gendsa.c,v retrieving revision 1.30 diff -u -p -d -r1.30 gendsa.c --- lib/libssl/src/apps/gendsa.c 14 Jul 2014 00:35:10 -0000 1.30 +++ lib/libssl/src/apps/gendsa.c 22 Jul 2014 05:15:07 -0000 @@ -219,8 +219,7 @@ bad: end: if (ret != 0) ERR_print_errors(bio_err); - if (in != NULL) - BIO_free(in); + BIO_free(in); if (out != NULL) BIO_free_all(out); if (dsa != NULL) Index: lib/libssl/src/apps/passwd.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/passwd.c,v retrieving revision 1.23 diff -u -p -d -r1.23 passwd.c --- lib/libssl/src/apps/passwd.c 14 Jul 2014 00:35:10 -0000 1.23 +++ lib/libssl/src/apps/passwd.c 22 Jul 2014 05:15:14 -0000 @@ -242,8 +242,7 @@ err: ERR_print_errors(bio_err); free(salt_malloc); free(passwd_malloc); - if (in) - BIO_free(in); + BIO_free(in); if (out) BIO_free_all(out); Index: lib/libssl/src/apps/s_server.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/s_server.c,v retrieving revision 1.61 diff -u -p -d -r1.61 s_server.c --- lib/libssl/src/apps/s_server.c 14 Jul 2014 00:35:10 -0000 1.61 +++ lib/libssl/src/apps/s_server.c 22 Jul 2014 05:15:20 -0000 @@ -1773,8 +1773,7 @@ load_dh_param(const char *dhfile) goto err; ret = PEM_read_bio_DHparams(bio, NULL, NULL, NULL); err: - if (bio != NULL) - BIO_free(bio); + BIO_free(bio); return (ret); } #endif Index: lib/libssl/src/apps/sess_id.c =================================================================== RCS file: /cvs/src/lib/libssl/src/apps/sess_id.c,v retrieving revision 1.19 diff -u -p -d -r1.19 sess_id.c --- lib/libssl/src/apps/sess_id.c 14 Jul 2014 00:35:10 -0000 1.19 +++ lib/libssl/src/apps/sess_id.c 22 Jul 2014 05:15:21 -0000 @@ -277,7 +277,6 @@ load_sess_id(char *infile, int format) goto end; } end: - if (in != NULL) - BIO_free(in); + BIO_free(in); return (x); } Index: lib/libssl/src/crypto/asn1/bio_ndef.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/asn1/bio_ndef.c,v retrieving revision 1.8 diff -u -p -d -r1.8 bio_ndef.c --- lib/libssl/src/crypto/asn1/bio_ndef.c 12 Jun 2014 15:49:27 -0000 1.8 +++ lib/libssl/src/crypto/asn1/bio_ndef.c 22 Jul 2014 05:15:21 -0000 @@ -144,8 +144,7 @@ BIO_new_NDEF(BIO *out, ASN1_VALUE *val, return sarg.ndef_bio; err: - if (asn_bio) - BIO_free(asn_bio); + BIO_free(asn_bio); free(ndef_aux); return NULL; } Index: lib/libssl/src/crypto/bio/bio_lib.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/bio/bio_lib.c,v retrieving revision 1.20 diff -u -p -d -r1.20 bio_lib.c --- lib/libssl/src/crypto/bio/bio_lib.c 11 Jul 2014 15:40:32 -0000 1.20 +++ lib/libssl/src/crypto/bio/bio_lib.c 22 Jul 2014 05:15:26 -0000 @@ -575,8 +575,7 @@ BIO_dup_chain(BIO *in) } return (ret); err: - if (ret != NULL) - BIO_free(ret); + BIO_free(ret); return (NULL); } Index: lib/libssl/src/crypto/bio/bss_acpt.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/bio/bss_acpt.c,v retrieving revision 1.24 diff -u -p -d -r1.24 bss_acpt.c --- lib/libssl/src/crypto/bio/bss_acpt.c 13 Jul 2014 16:03:09 -0000 1.24 +++ lib/libssl/src/crypto/bio/bss_acpt.c 22 Jul 2014 05:15:26 -0000 @@ -153,8 +153,7 @@ BIO_ACCEPT_free(BIO_ACCEPT *a) free(a->param_addr); free(a->addr); - if (a->bio_chain != NULL) - BIO_free(a->bio_chain); + BIO_free(a->bio_chain); free(a); } @@ -358,8 +357,7 @@ acpt_ctrl(BIO *b, int cmd, long num, voi } else if (num == 1) { data->accept_nbio = (ptr != NULL); } else if (num == 2) { - if (data->bio_chain != NULL) - BIO_free(data->bio_chain); + BIO_free(data->bio_chain); data->bio_chain = (BIO *)ptr; } } Index: lib/libssl/src/crypto/cms/cms_lib.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/cms/cms_lib.c,v retrieving revision 1.3 diff -u -p -d -r1.3 cms_lib.c --- lib/libssl/src/crypto/cms/cms_lib.c 12 Jun 2014 15:49:28 -0000 1.3 +++ lib/libssl/src/crypto/cms/cms_lib.c 22 Jul 2014 05:15:31 -0000 @@ -360,8 +360,7 @@ cms_DigestAlgorithm_init_bio(X509_ALGOR return mdbio; err: - if (mdbio) - BIO_free(mdbio); + BIO_free(mdbio); return NULL; } Index: lib/libssl/src/crypto/ocsp/ocsp_ht.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/ocsp/ocsp_ht.c,v retrieving revision 1.20 diff -u -p -d -r1.20 ocsp_ht.c --- lib/libssl/src/crypto/ocsp/ocsp_ht.c 12 Jul 2014 14:58:32 -0000 1.20 +++ lib/libssl/src/crypto/ocsp/ocsp_ht.c 22 Jul 2014 05:15:31 -0000 @@ -111,8 +111,7 @@ OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx) if (rctx == NULL) return; - if (rctx->mem) - BIO_free(rctx->mem); + BIO_free(rctx->mem); free(rctx->iobuf); free(rctx); } Index: lib/libssl/src/crypto/pkcs7/pk7_doit.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c,v retrieving revision 1.28 diff -u -p -d -r1.28 pk7_doit.c --- lib/libssl/src/crypto/pkcs7/pk7_doit.c 12 Jul 2014 16:03:37 -0000 1.28 +++ lib/libssl/src/crypto/pkcs7/pk7_doit.c 22 Jul 2014 05:15:42 -0000 @@ -133,8 +133,7 @@ PKCS7_bio_add_digest(BIO **pbio, X509_AL return 1; err: - if (btmp) - BIO_free(btmp); + BIO_free(btmp); return 0; } Index: lib/libssl/src/crypto/x509/by_file.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/x509/by_file.c,v retrieving revision 1.15 diff -u -p -d -r1.15 by_file.c --- lib/libssl/src/crypto/x509/by_file.c 11 Jul 2014 08:44:49 -0000 1.15 +++ lib/libssl/src/crypto/x509/by_file.c 22 Jul 2014 05:15:48 -0000 @@ -182,8 +182,7 @@ X509_load_cert_file(X509_LOOKUP *ctx, co err: if (x != NULL) X509_free(x); - if (in != NULL) - BIO_free(in); + BIO_free(in); return (ret); } @@ -243,8 +242,7 @@ X509_load_crl_file(X509_LOOKUP *ctx, con err: if (x != NULL) X509_CRL_free(x); - if (in != NULL) - BIO_free(in); + BIO_free(in); return (ret); }