free NULL cleanup -- coda

After the finale, the "real" final part. :)  Do a recursive grep with
"-B1 -w [a-zA-Z0-9_]*_free" to see if any of the preceeding lines are
an "if NULL" check that can be removed.

Reviewed-by: Tim Hudson <tjh@openssl.org>
This commit is contained in:
Rich Salz 2015-05-01 14:37:16 -04:00
parent 666964780a
commit 25aaa98aa2
82 changed files with 244 additions and 511 deletions

View File

@ -592,11 +592,8 @@ int load_cert_crl_http(const char *url, X509 **pcert, X509_CRL **pcrl)
} }
err: err:
if (host)
OPENSSL_free(host); OPENSSL_free(host);
if (path)
OPENSSL_free(path); OPENSSL_free(path);
if (port)
OPENSSL_free(port); OPENSSL_free(port);
if (bio) if (bio)
BIO_free_all(bio); BIO_free_all(bio);
@ -660,7 +657,6 @@ X509 *load_cert(const char *file, int format,
BIO_printf(bio_err, "unable to load certificate\n"); BIO_printf(bio_err, "unable to load certificate\n");
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
} }
if (cert != NULL)
BIO_free(cert); BIO_free(cert);
return (x); return (x);
} }
@ -761,7 +757,6 @@ EVP_PKEY *load_key(const char *file, int format, int maybe_stdin,
goto end; goto end;
} }
end: end:
if (key != NULL)
BIO_free(key); BIO_free(key);
if (pkey == NULL) { if (pkey == NULL) {
BIO_printf(bio_err, "unable to load %s\n", key_descrip); BIO_printf(bio_err, "unable to load %s\n", key_descrip);
@ -849,7 +844,6 @@ EVP_PKEY *load_pubkey(const char *file, int format, int maybe_stdin,
pkey = b2i_PublicKey_bio(key); pkey = b2i_PublicKey_bio(key);
#endif #endif
end: end:
if (key != NULL)
BIO_free(key); BIO_free(key);
if (pkey == NULL) if (pkey == NULL)
BIO_printf(bio_err, "unable to load %s\n", key_descrip); BIO_printf(bio_err, "unable to load %s\n", key_descrip);

View File

@ -319,14 +319,12 @@ int asn1parse_main(int argc, char **argv)
BIO_free(b64); BIO_free(b64);
if (ret != 0) if (ret != 0)
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
OPENSSL_free(name); OPENSSL_free(name);
OPENSSL_free(header); OPENSSL_free(header);
if (strictpem) if (strictpem)
OPENSSL_free(str); OPENSSL_free(str);
ASN1_TYPE_free(at); ASN1_TYPE_free(at);
if (osk != NULL)
sk_OPENSSL_STRING_free(osk); sk_OPENSSL_STRING_free(osk);
OBJ_cleanup(); OBJ_cleanup();
return (ret); return (ret);

View File

@ -514,10 +514,8 @@ end_of_options:
errorline, configfile); errorline, configfile);
goto end; goto end;
} }
if (tofree) {
OPENSSL_free(tofree); OPENSSL_free(tofree);
tofree = NULL; tofree = NULL;
}
/* Lets get the config section we are using */ /* Lets get the config section we are using */
if (section == NULL) { if (section == NULL) {
@ -1331,7 +1329,6 @@ end_of_options:
/*****************************************************************/ /*****************************************************************/
ret = 0; ret = 0;
end: end:
if (tofree)
OPENSSL_free(tofree); OPENSSL_free(tofree);
BIO_free_all(Cout); BIO_free_all(Cout);
BIO_free_all(Sout); BIO_free_all(Sout);
@ -1342,12 +1339,11 @@ end_of_options:
if (ret) if (ret)
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
app_RAND_write_file(randfile); app_RAND_write_file(randfile);
if (free_key && key) if (free_key)
OPENSSL_free(key); OPENSSL_free(key);
BN_free(serial); BN_free(serial);
BN_free(crlnumber); BN_free(crlnumber);
free_index(db); free_index(db);
if (sigopts)
sk_OPENSSL_STRING_free(sigopts); sk_OPENSSL_STRING_free(sigopts);
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
X509_free(x509); X509_free(x509);
@ -2000,7 +1996,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
ok = 1; ok = 1;
end: end:
for (i = 0; i < DB_NUMBER; i++) for (i = 0; i < DB_NUMBER; i++)
if (row[i] != NULL)
OPENSSL_free(row[i]); OPENSSL_free(row[i]);
X509_NAME_free(CAname); X509_NAME_free(CAname);
@ -2159,9 +2154,7 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey,
ext_copy, 0); ext_copy, 0);
end: end:
X509_REQ_free(req); X509_REQ_free(req);
if (parms != NULL)
CONF_free(parms); CONF_free(parms);
if (spki != NULL)
NETSCAPE_SPKI_free(spki); NETSCAPE_SPKI_free(spki);
X509_NAME_ENTRY_free(ne); X509_NAME_ENTRY_free(ne);

View File

@ -214,7 +214,7 @@ int ciphers_main(int argc, char **argv)
err: err:
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
end: end:
if (use_supported && sk) if (use_supported)
sk_SSL_CIPHER_free(sk); sk_SSL_CIPHER_free(sk);
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
SSL_free(ssl); SSL_free(ssl);

View File

@ -1117,19 +1117,14 @@ int cms_main(int argc, char **argv)
sk_X509_pop_free(encerts, X509_free); sk_X509_pop_free(encerts, X509_free);
sk_X509_pop_free(other, X509_free); sk_X509_pop_free(other, X509_free);
X509_VERIFY_PARAM_free(vpm); X509_VERIFY_PARAM_free(vpm);
if (sksigners)
sk_OPENSSL_STRING_free(sksigners); sk_OPENSSL_STRING_free(sksigners);
if (skkeys)
sk_OPENSSL_STRING_free(skkeys); sk_OPENSSL_STRING_free(skkeys);
OPENSSL_free(secret_key); OPENSSL_free(secret_key);
OPENSSL_free(secret_keyid); OPENSSL_free(secret_keyid);
OPENSSL_free(pwri_tmp); OPENSSL_free(pwri_tmp);
ASN1_OBJECT_free(econtent_type); ASN1_OBJECT_free(econtent_type);
if (rr)
CMS_ReceiptRequest_free(rr); CMS_ReceiptRequest_free(rr);
if (rr_to)
sk_OPENSSL_STRING_free(rr_to); sk_OPENSSL_STRING_free(rr_to);
if (rr_from)
sk_OPENSSL_STRING_free(rr_from); sk_OPENSSL_STRING_free(rr_from);
for (key_param = key_first; key_param;) { for (key_param = key_first; key_param;) {
cms_key_param *tparam; cms_key_param *tparam;
@ -1247,7 +1242,6 @@ static void receipt_request_print(CMS_ContentInfo *cms)
BIO_puts(bio_err, " Receipts To:\n"); BIO_puts(bio_err, " Receipts To:\n");
gnames_stack_print(rto); gnames_stack_print(rto);
} }
if (rr)
CMS_ReceiptRequest_free(rr); CMS_ReceiptRequest_free(rr);
} }
} }
@ -1280,11 +1274,8 @@ static STACK_OF(GENERAL_NAMES) *make_names_stack(STACK_OF(OPENSSL_STRING) *ns)
return ret; return ret;
err: err:
if (ret)
sk_GENERAL_NAMES_pop_free(ret, GENERAL_NAMES_free); sk_GENERAL_NAMES_pop_free(ret, GENERAL_NAMES_free);
if (gens)
GENERAL_NAMES_free(gens); GENERAL_NAMES_free(gens);
if (gen)
GENERAL_NAME_free(gen); GENERAL_NAME_free(gen);
return NULL; return NULL;
} }

View File

@ -443,13 +443,10 @@ int dgst_main(int argc, char **argv)
end: end:
OPENSSL_clear_free(buf, BUFSIZE); OPENSSL_clear_free(buf, BUFSIZE);
BIO_free(in); BIO_free(in);
if (passin)
OPENSSL_free(passin); OPENSSL_free(passin);
BIO_free_all(out); BIO_free_all(out);
EVP_PKEY_free(sigkey); EVP_PKEY_free(sigkey);
if (sigopts)
sk_OPENSSL_STRING_free(sigopts); sk_OPENSSL_STRING_free(sigopts);
if (macopts)
sk_OPENSSL_STRING_free(macopts); sk_OPENSSL_STRING_free(macopts);
OPENSSL_free(sigbuf); OPENSSL_free(sigbuf);
BIO_free(bmd); BIO_free(bmd);

View File

@ -261,7 +261,6 @@ static int util_verbose(ENGINE *e, int verbose, BIO *out, const char *indent)
BIO_printf(out, "\n"); BIO_printf(out, "\n");
ret = 1; ret = 1;
err: err:
if (cmds)
sk_OPENSSL_STRING_pop_free(cmds, identity); sk_OPENSSL_STRING_pop_free(cmds, identity);
OPENSSL_free(name); OPENSSL_free(name);
OPENSSL_free(desc); OPENSSL_free(desc);

View File

@ -198,9 +198,7 @@ int genrsa_main(int argc, char **argv)
if (hexe && dece) { if (hexe && dece) {
BIO_printf(bio_err, "e is %s (0x%s)\n", dece, hexe); BIO_printf(bio_err, "e is %s (0x%s)\n", dece, hexe);
} }
if (hexe)
OPENSSL_free(hexe); OPENSSL_free(hexe);
if (dece)
OPENSSL_free(dece); OPENSSL_free(dece);
{ {
PW_CB_DATA cb_data; PW_CB_DATA cb_data;

View File

@ -917,7 +917,6 @@ static void make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req,
NULL); NULL);
goto end; goto end;
} }
if (ca_id)
OCSP_CERTID_free(ca_id); OCSP_CERTID_free(ca_id);
ca_id = OCSP_cert_to_id(cert_id_md, NULL, ca); ca_id = OCSP_cert_to_id(cert_id_md, NULL, ca);

View File

@ -511,11 +511,8 @@ int main(int argc, char *argv[])
end: end:
OPENSSL_free(copied_argv); OPENSSL_free(copied_argv);
OPENSSL_free(to_free); OPENSSL_free(to_free);
if (config != NULL) {
NCONF_free(config); NCONF_free(config);
config = NULL; config = NULL;
}
if (prog != NULL)
lh_FUNCTION_free(prog); lh_FUNCTION_free(prog);
OPENSSL_free(arg.argv); OPENSSL_free(arg.argv);

View File

@ -554,7 +554,6 @@ int pkcs12_main(int argc, char **argv)
app_RAND_write_file(NULL); app_RAND_write_file(NULL);
BIO_free(in); BIO_free(in);
BIO_free_all(out); BIO_free_all(out);
if (canames)
sk_OPENSSL_STRING_free(canames); sk_OPENSSL_STRING_free(canames);
OPENSSL_free(passin); OPENSSL_free(passin);
OPENSSL_free(passout); OPENSSL_free(passout);

View File

@ -872,15 +872,13 @@ int req_main(int argc, char **argv)
if (ret) { if (ret) {
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
} }
if ((req_conf != NULL) && (req_conf != config)) if (req_conf != config)
NCONF_free(req_conf); NCONF_free(req_conf);
BIO_free(in); BIO_free(in);
BIO_free_all(out); BIO_free_all(out);
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
EVP_PKEY_CTX_free(genctx); EVP_PKEY_CTX_free(genctx);
if (pkeyopts)
sk_OPENSSL_STRING_free(pkeyopts); sk_OPENSSL_STRING_free(pkeyopts);
if (sigopts)
sk_OPENSSL_STRING_free(sigopts); sk_OPENSSL_STRING_free(sigopts);
#ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
ENGINE_free(gen_eng); ENGINE_free(gen_eng);

View File

@ -1202,6 +1202,9 @@ static int ssl_excert_prepend(SSL_EXCERT **pexc)
void ssl_excert_free(SSL_EXCERT *exc) void ssl_excert_free(SSL_EXCERT *exc)
{ {
SSL_EXCERT *curr; SSL_EXCERT *curr;
if (!exc)
return;
while (exc) { while (exc) {
X509_free(exc->cert); X509_free(exc->cert);
EVP_PKEY_free(exc->key); EVP_PKEY_free(exc->key);
@ -1311,7 +1314,6 @@ int args_excert(int opt, SSL_EXCERT **pexc)
err: err:
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
if (exc)
ssl_excert_free(exc); ssl_excert_free(exc);
*pexc = NULL; *pexc = NULL;
return 0; return 0;

View File

@ -475,7 +475,6 @@ static int ebcdic_free(BIO *a)
{ {
if (a == NULL) if (a == NULL)
return (0); return (0);
if (a->ptr != NULL)
OPENSSL_free(a->ptr); OPENSSL_free(a->ptr);
a->ptr = NULL; a->ptr = NULL;
a->init = 0; a->init = 0;
@ -725,11 +724,8 @@ static int cert_status_cb(SSL *s, void *arg)
OPENSSL_free(port); OPENSSL_free(port);
X509_email_free(aia); X509_email_free(aia);
} }
if (id)
OCSP_CERTID_free(id); OCSP_CERTID_free(id);
if (req)
OCSP_REQUEST_free(req); OCSP_REQUEST_free(req);
if (resp)
OCSP_RESPONSE_free(resp); OCSP_RESPONSE_free(resp);
return ret; return ret;
err: err:
@ -1928,29 +1924,21 @@ int s_server_main(int argc, char *argv[])
EVP_PKEY_free(s_dkey); EVP_PKEY_free(s_dkey);
sk_X509_pop_free(s_chain, X509_free); sk_X509_pop_free(s_chain, X509_free);
sk_X509_pop_free(s_dchain, X509_free); sk_X509_pop_free(s_dchain, X509_free);
if (pass)
OPENSSL_free(pass); OPENSSL_free(pass);
if (dpass)
OPENSSL_free(dpass); OPENSSL_free(dpass);
X509_VERIFY_PARAM_free(vpm); X509_VERIFY_PARAM_free(vpm);
free_sessions(); free_sessions();
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
if (tlscstatp.host)
OPENSSL_free(tlscstatp.host); OPENSSL_free(tlscstatp.host);
if (tlscstatp.port)
OPENSSL_free(tlscstatp.port); OPENSSL_free(tlscstatp.port);
if (tlscstatp.path)
OPENSSL_free(tlscstatp.path); OPENSSL_free(tlscstatp.path);
if (ctx2 != NULL)
SSL_CTX_free(ctx2); SSL_CTX_free(ctx2);
X509_free(s_cert2); X509_free(s_cert2);
EVP_PKEY_free(s_key2); EVP_PKEY_free(s_key2);
BIO_free(serverinfo_in); BIO_free(serverinfo_in);
# ifndef OPENSSL_NO_NEXTPROTONEG # ifndef OPENSSL_NO_NEXTPROTONEG
if (next_proto.data)
OPENSSL_free(next_proto.data); OPENSSL_free(next_proto.data);
# endif # endif
if (alpn_ctx.data)
OPENSSL_free(alpn_ctx.data); OPENSSL_free(alpn_ctx.data);
#endif #endif
ssl_excert_free(exc); ssl_excert_free(exc);

View File

@ -211,7 +211,6 @@ int sess_id_main(int argc, char **argv)
ret = 0; ret = 0;
end: end:
BIO_free_all(out); BIO_free_all(out);
if (x != NULL)
SSL_SESSION_free(x); SSL_SESSION_free(x);
return (ret); return (ret);
} }

View File

@ -651,9 +651,7 @@ int smime_main(int argc, char **argv)
sk_X509_pop_free(encerts, X509_free); sk_X509_pop_free(encerts, X509_free);
sk_X509_pop_free(other, X509_free); sk_X509_pop_free(other, X509_free);
X509_VERIFY_PARAM_free(vpm); X509_VERIFY_PARAM_free(vpm);
if (sksigners)
sk_OPENSSL_STRING_free(sksigners); sk_OPENSSL_STRING_free(sksigners);
if (skkeys)
sk_OPENSSL_STRING_free(skkeys); sk_OPENSSL_STRING_free(skkeys);
X509_STORE_free(store); X509_STORE_free(store);
X509_free(cert); X509_free(cert);

View File

@ -669,11 +669,8 @@ int srp_main(int argc, char **argv)
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
if (randfile) if (randfile)
app_RAND_write_file(randfile); app_RAND_write_file(randfile);
if (conf)
NCONF_free(conf); NCONF_free(conf);
if (db)
free_index(db); free_index(db);
OBJ_cleanup(); OBJ_cleanup();
return (ret); return (ret);
} }

View File

@ -949,7 +949,6 @@ int x509_main(int argc, char **argv)
EVP_PKEY_free(Upkey); EVP_PKEY_free(Upkey);
EVP_PKEY_free(CApkey); EVP_PKEY_free(CApkey);
EVP_PKEY_free(fkey); EVP_PKEY_free(fkey);
if (sigopts)
sk_OPENSSL_STRING_free(sigopts); sk_OPENSSL_STRING_free(sigopts);
X509_REQ_free(rq); X509_REQ_free(rq);
ASN1_INTEGER_free(sno); ASN1_INTEGER_free(sno);

View File

@ -97,7 +97,6 @@ void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x)
p = (unsigned char *)b->data; p = (unsigned char *)b->data;
ret = d2i(x, &p, len); ret = d2i(x, &p, len);
err: err:
if (b != NULL)
BUF_MEM_free(b); BUF_MEM_free(b);
return (ret); return (ret);
} }
@ -118,7 +117,6 @@ void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
p = (const unsigned char *)b->data; p = (const unsigned char *)b->data;
ret = ASN1_item_d2i(x, &p, len, it); ret = ASN1_item_d2i(x, &p, len, it);
err: err:
if (b != NULL)
BUF_MEM_free(b); BUF_MEM_free(b);
return (ret); return (ret);
} }
@ -264,7 +262,6 @@ static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
*pb = b; *pb = b;
return off; return off;
err: err:
if (b != NULL)
BUF_MEM_free(b); BUF_MEM_free(b);
return -1; return -1;
} }

View File

@ -116,7 +116,6 @@ int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter,
return 1; return 1;
err: err:
if (pbe != NULL)
PBEPARAM_free(pbe); PBEPARAM_free(pbe);
ASN1_STRING_free(pbe_str); ASN1_STRING_free(pbe_str);
return 0; return 0;

View File

@ -281,9 +281,7 @@ static int crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
if (!crl->meth->crl_free(crl)) if (!crl->meth->crl_free(crl))
return 0; return 0;
} }
if (crl->akid)
AUTHORITY_KEYID_free(crl->akid); AUTHORITY_KEYID_free(crl->akid);
if (crl->idp)
ISSUING_DIST_POINT_free(crl->idp); ISSUING_DIST_POINT_free(crl->idp);
ASN1_INTEGER_free(crl->crl_number); ASN1_INTEGER_free(crl->crl_number);
ASN1_INTEGER_free(crl->base_crl_number); ASN1_INTEGER_free(crl->base_crl_number);

View File

@ -105,10 +105,7 @@ CMS_ContentInfo *cms_CompressedData_create(int comp_nid)
return cms; return cms;
err: err:
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
return NULL; return NULL;
} }

View File

@ -88,10 +88,7 @@ CMS_ContentInfo *cms_DigestedData_create(const EVP_MD *md)
return cms; return cms;
err: err:
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
return NULL; return NULL;
} }

View File

@ -194,7 +194,7 @@ BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec)
ok = 1; ok = 1;
err: err:
if (ec->key && !keep_key) { if (!keep_key) {
OPENSSL_clear_free(ec->key, ec->keylen); OPENSSL_clear_free(ec->key, ec->keylen);
ec->key = NULL; ec->key = NULL;
} }

View File

@ -168,7 +168,6 @@ CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher)
goto merr; goto merr;
return cms; return cms;
merr: merr:
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
CMSerr(CMS_F_CMS_ENVELOPEDDATA_CREATE, ERR_R_MALLOC_FAILURE); CMSerr(CMS_F_CMS_ENVELOPEDDATA_CREATE, ERR_R_MALLOC_FAILURE);
return NULL; return NULL;
@ -400,10 +399,8 @@ static int cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms,
ret = 1; ret = 1;
err: err:
if (pctx) {
EVP_PKEY_CTX_free(pctx); EVP_PKEY_CTX_free(pctx);
ktri->pctx = NULL; ktri->pctx = NULL;
}
OPENSSL_free(ek); OPENSSL_free(ek);
return ret; return ret;

View File

@ -128,9 +128,7 @@ CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen,
CMSerr(CMS_F_CMS_RECEIPTREQUEST_CREATE0, ERR_R_MALLOC_FAILURE); CMSerr(CMS_F_CMS_RECEIPTREQUEST_CREATE0, ERR_R_MALLOC_FAILURE);
err: err:
if (rr)
CMS_ReceiptRequest_free(rr); CMS_ReceiptRequest_free(rr);
return NULL; return NULL;
} }
@ -337,10 +335,8 @@ int cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
r = 1; r = 1;
err: err:
if (rr)
CMS_ReceiptRequest_free(rr); CMS_ReceiptRequest_free(rr);
M_ASN1_free_of(rct, CMS_Receipt); M_ASN1_free_of(rct, CMS_Receipt);
return r; return r;
} }
@ -384,9 +380,6 @@ ASN1_OCTET_STRING *cms_encode_Receipt(CMS_SignerInfo *si)
os = ASN1_item_pack(&rct, ASN1_ITEM_rptr(CMS_Receipt), NULL); os = ASN1_item_pack(&rct, ASN1_ITEM_rptr(CMS_Receipt), NULL);
err: err:
if (rr)
CMS_ReceiptRequest_free(rr); CMS_ReceiptRequest_free(rr);
return os; return os;
} }

View File

@ -207,10 +207,9 @@ int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk)
{ {
EVP_PKEY_CTX *pctx; EVP_PKEY_CTX *pctx;
CMS_KeyAgreeRecipientInfo *kari = ri->d.kari; CMS_KeyAgreeRecipientInfo *kari = ri->d.kari;
if (kari->pctx) {
EVP_PKEY_CTX_free(kari->pctx); EVP_PKEY_CTX_free(kari->pctx);
kari->pctx = NULL; kari->pctx = NULL;
}
if (!pk) if (!pk)
return 1; return 1;
pctx = EVP_PKEY_CTX_new(pk, NULL); pctx = EVP_PKEY_CTX_new(pk, NULL);

View File

@ -512,7 +512,6 @@ CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey,
CMSerr(CMS_F_CMS_SIGN, ERR_R_MALLOC_FAILURE); CMSerr(CMS_F_CMS_SIGN, ERR_R_MALLOC_FAILURE);
err: err:
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
return NULL; return NULL;
} }
@ -614,7 +613,6 @@ CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *data,
merr: merr:
CMSerr(CMS_F_CMS_ENCRYPT, ERR_R_MALLOC_FAILURE); CMSerr(CMS_F_CMS_ENCRYPT, ERR_R_MALLOC_FAILURE);
err: err:
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
return NULL; return NULL;
} }

View File

@ -391,19 +391,17 @@ static int def_load_bio(CONF *conf, BIO *in, long *line)
v = NULL; v = NULL;
} }
} }
if (buff != NULL)
BUF_MEM_free(buff); BUF_MEM_free(buff);
OPENSSL_free(section); OPENSSL_free(section);
return (1); return (1);
err: err:
if (buff != NULL)
BUF_MEM_free(buff); BUF_MEM_free(buff);
OPENSSL_free(section); OPENSSL_free(section);
if (line != NULL) if (line != NULL)
*line = eline; *line = eline;
BIO_snprintf(btmp, sizeof btmp, "%ld", eline); BIO_snprintf(btmp, sizeof btmp, "%ld", eline);
ERR_add_error_data(2, "line ", btmp); ERR_add_error_data(2, "line ", btmp);
if ((h != conf->data) && (conf->data != NULL)) { if (h != conf->data) {
CONF_free(conf->data); CONF_free(conf->data);
conf->data = NULL; conf->data = NULL;
} }
@ -595,7 +593,6 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
OPENSSL_free(buf); OPENSSL_free(buf);
return (1); return (1);
err: err:
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
return (0); return (0);
} }

View File

@ -994,7 +994,6 @@ int i2d_ECPKParameters(const EC_GROUP *a, unsigned char **out)
EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len) EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
{ {
int ok = 0;
EC_KEY *ret = NULL; EC_KEY *ret = NULL;
EC_PRIVATEKEY *priv_key = NULL; EC_PRIVATEKEY *priv_key = NULL;
@ -1075,18 +1074,14 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)
if (a) if (a)
*a = ret; *a = ret;
ok = 1; EC_PRIVATEKEY_free(priv_key);
return (ret);
err: err:
if (!ok) {
if (a == NULL || *a != ret) if (a == NULL || *a != ret)
EC_KEY_free(ret); EC_KEY_free(ret);
ret = NULL;
}
if (priv_key)
EC_PRIVATEKEY_free(priv_key); EC_PRIVATEKEY_free(priv_key);
return NULL;
return (ret);
} }
int i2d_ECPrivateKey(EC_KEY *a, unsigned char **out) int i2d_ECPrivateKey(EC_KEY *a, unsigned char **out)
@ -1190,7 +1185,6 @@ int i2d_ECPrivateKey(EC_KEY *a, unsigned char **out)
ok = 1; ok = 1;
err: err:
OPENSSL_free(buffer); OPENSSL_free(buffer);
if (priv_key)
EC_PRIVATEKEY_free(priv_key); EC_PRIVATEKEY_free(priv_key);
return (ok ? ret : 0); return (ok ? ret : 0);
} }

View File

@ -132,16 +132,11 @@ void EC_GROUP_free(EC_GROUP *group)
group->meth->group_finish(group); group->meth->group_finish(group);
EC_EX_DATA_free_all_data(&group->extra_data); EC_EX_DATA_free_all_data(&group->extra_data);
BN_MONT_CTX_free(group->mont_data); BN_MONT_CTX_free(group->mont_data);
EC_POINT_free(group->generator); EC_POINT_free(group->generator);
BN_free(group->order); BN_free(group->order);
BN_free(group->cofactor); BN_free(group->cofactor);
if (group->seed)
OPENSSL_free(group->seed); OPENSSL_free(group->seed);
OPENSSL_free(group); OPENSSL_free(group);
} }

View File

@ -742,7 +742,6 @@ int ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
if (ctx != NULL) if (ctx != NULL)
BN_CTX_end(ctx); BN_CTX_end(ctx);
BN_CTX_free(new_ctx); BN_CTX_free(new_ctx);
if (pre_comp)
ec_pre_comp_free(pre_comp); ec_pre_comp_free(pre_comp);
if (points) { if (points) {
EC_POINT **p; EC_POINT **p;

View File

@ -189,7 +189,6 @@ static void dynamic_data_ctx_free_func(void *parent, void *ptr,
DSO_free(ctx->dynamic_dso); DSO_free(ctx->dynamic_dso);
OPENSSL_free(ctx->DYNAMIC_LIBNAME); OPENSSL_free(ctx->DYNAMIC_LIBNAME);
OPENSSL_free(ctx->engine_id); OPENSSL_free(ctx->engine_id);
if (ctx->dirs)
sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str); sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str);
OPENSSL_free(ctx); OPENSSL_free(ctx);
} }

View File

@ -559,10 +559,8 @@ void ERR_unload_strings(int lib, ERR_STRING_DATA *str)
void ERR_free_strings(void) void ERR_free_strings(void)
{ {
CRYPTO_w_lock(CRYPTO_LOCK_ERR); CRYPTO_w_lock(CRYPTO_LOCK_ERR);
if (int_error_hash) {
lh_ERR_STRING_DATA_free(int_error_hash); lh_ERR_STRING_DATA_free(int_error_hash);
int_error_hash = NULL; int_error_hash = NULL;
}
CRYPTO_w_unlock(CRYPTO_LOCK_ERR); CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
} }

View File

@ -524,10 +524,8 @@ static void int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
} }
} }
OPENSSL_free(storage); OPENSSL_free(storage);
if (ad->sk) {
sk_void_free(ad->sk); sk_void_free(ad->sk);
ad->sk = NULL; ad->sk = NULL;
}
} }
/********************************************************************/ /********************************************************************/

View File

@ -197,10 +197,10 @@ static CRYPTO_THREADID disabling_threadid;
static void app_info_free(APP_INFO *inf) static void app_info_free(APP_INFO *inf)
{ {
if (!inf)
return;
if (--(inf->references) <= 0) { if (--(inf->references) <= 0) {
if (inf->next != NULL) {
app_info_free(inf->next); app_info_free(inf->next);
}
OPENSSL_free(inf); OPENSSL_free(inf);
} }
} }
@ -559,7 +559,6 @@ void CRYPTO_dbg_free(void *addr, int before_p)
fprintf(stderr, "LEVITTE_DEBUG_MEM: [%5ld] - 0x%p (%d)\n", fprintf(stderr, "LEVITTE_DEBUG_MEM: [%5ld] - 0x%p (%d)\n",
mp->order, mp->addr, mp->num); mp->order, mp->addr, mp->num);
#endif #endif
if (mp->app_info != NULL)
app_info_free(mp->app_info); app_info_free(mp->app_info);
OPENSSL_free(mp); OPENSSL_free(mp);
} }
@ -763,10 +762,8 @@ void CRYPTO_mem_leaks(BIO *b)
old_mh_mode = mh_mode; old_mh_mode = mh_mode;
mh_mode = CRYPTO_MEM_CHECK_OFF; mh_mode = CRYPTO_MEM_CHECK_OFF;
if (mh != NULL) {
lh_MEM_free(mh); lh_MEM_free(mh);
mh = NULL; mh = NULL;
}
if (amih != NULL) { if (amih != NULL) {
if (lh_APP_INFO_num_items(amih) == 0) { if (lh_APP_INFO_num_items(amih) == 0) {
lh_APP_INFO_free(amih); lh_APP_INFO_free(amih);

View File

@ -91,7 +91,6 @@ OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)
if (!(one = OCSP_ONEREQ_new())) if (!(one = OCSP_ONEREQ_new()))
goto err; goto err;
if (one->reqCert)
OCSP_CERTID_free(one->reqCert); OCSP_CERTID_free(one->reqCert);
one->reqCert = cid; one->reqCert = cid;
if (req && !sk_OCSP_ONEREQ_push(req->tbsRequest->requestList, one)) if (req && !sk_OCSP_ONEREQ_push(req->tbsRequest->requestList, one))
@ -107,6 +106,7 @@ OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)
int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm) int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm)
{ {
GENERAL_NAME *gen; GENERAL_NAME *gen;
gen = GENERAL_NAME_new(); gen = GENERAL_NAME_new();
if (gen == NULL) if (gen == NULL)
return 0; return 0;
@ -115,7 +115,6 @@ int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm)
return 0; return 0;
} }
gen->type = GEN_DIRNAME; gen->type = GEN_DIRNAME;
if (req->tbsRequest->requestorName)
GENERAL_NAME_free(req->tbsRequest->requestorName); GENERAL_NAME_free(req->tbsRequest->requestorName);
req->tbsRequest->requestorName = gen; req->tbsRequest->requestorName = gen;
return 1; return 1;

View File

@ -437,7 +437,6 @@ X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim)
} }
x = X509V3_EXT_i2d(NID_id_pkix_OCSP_CrlID, 0, cid); x = X509V3_EXT_i2d(NID_id_pkix_OCSP_CrlID, 0, cid);
err: err:
if (cid)
OCSP_CRLID_free(cid); OCSP_CRLID_free(cid);
return x; return x;
} }
@ -516,7 +515,6 @@ X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, char **urls)
} }
x = X509V3_EXT_i2d(NID_id_pkix_OCSP_serviceLocator, 0, sloc); x = X509V3_EXT_i2d(NID_id_pkix_OCSP_serviceLocator, 0, sloc);
err: err:
if (sloc)
OCSP_SERVICELOC_free(sloc); OCSP_SERVICELOC_free(sloc);
return x; return x;
} }

View File

@ -142,7 +142,6 @@ OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst,
digerr: digerr:
OCSPerr(OCSP_F_OCSP_CERT_ID_NEW, OCSP_R_DIGEST_ERR); OCSPerr(OCSP_F_OCSP_CERT_ID_NEW, OCSP_R_DIGEST_ERR);
err: err:
if (cid)
OCSP_CERTID_free(cid); OCSP_CERTID_free(cid);
return NULL; return NULL;
} }

View File

@ -130,7 +130,6 @@ OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs)
goto err; goto err;
return rsp; return rsp;
err: err:
if (rsp)
OCSP_RESPONSE_free(rsp); OCSP_RESPONSE_free(rsp);
return NULL; return NULL;
} }

View File

@ -674,6 +674,7 @@ static EVP_PKEY *do_PVK_body(const unsigned char **in,
const unsigned char *p = *in; const unsigned char *p = *in;
unsigned int magic; unsigned int magic;
unsigned char *enctmp = NULL, *q; unsigned char *enctmp = NULL, *q;
EVP_CIPHER_CTX cctx; EVP_CIPHER_CTX cctx;
EVP_CIPHER_CTX_init(&cctx); EVP_CIPHER_CTX_init(&cctx);
if (saltlen) { if (saltlen) {
@ -736,7 +737,6 @@ static EVP_PKEY *do_PVK_body(const unsigned char **in,
ret = b2i_PrivateKey(&p, keylen); ret = b2i_PrivateKey(&p, keylen);
err: err:
EVP_CIPHER_CTX_cleanup(&cctx); EVP_CIPHER_CTX_cleanup(&cctx);
if (saltlen)
OPENSSL_free(enctmp); OPENSSL_free(enctmp);
return ret; return ret;
} }

View File

@ -82,9 +82,6 @@ pitem *pitem_new(unsigned char *prio64be, void *data)
void pitem_free(pitem *item) void pitem_free(pitem *item)
{ {
if (item == NULL)
return;
OPENSSL_free(item); OPENSSL_free(item);
} }
@ -100,9 +97,6 @@ pqueue_s *pqueue_new()
void pqueue_free(pqueue_s *pq) void pqueue_free(pqueue_s *pq)
{ {
if (pq == NULL)
return;
OPENSSL_free(pq); OPENSSL_free(pq);
} }

View File

@ -378,7 +378,6 @@ static int rsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,
X509_ALGOR *maskHash; X509_ALGOR *maskHash;
pss = rsa_pss_decode(sigalg, &maskHash); pss = rsa_pss_decode(sigalg, &maskHash);
rv = rsa_pss_param_print(bp, pss, maskHash, indent); rv = rsa_pss_param_print(bp, pss, maskHash, indent);
if (pss)
RSA_PSS_PARAMS_free(pss); RSA_PSS_PARAMS_free(pss);
X509_ALGOR_free(maskHash); X509_ALGOR_free(maskHash);
if (!rv) if (!rv)
@ -557,7 +556,6 @@ static ASN1_STRING *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx)
goto err; goto err;
rv = 1; rv = 1;
err: err:
if (pss)
RSA_PSS_PARAMS_free(pss); RSA_PSS_PARAMS_free(pss);
if (rv) if (rv)
return os; return os;
@ -896,7 +894,6 @@ static int rsa_cms_encrypt(CMS_RecipientInfo *ri)
os = NULL; os = NULL;
rv = 1; rv = 1;
err: err:
if (oaep)
RSA_OAEP_PARAMS_free(oaep); RSA_OAEP_PARAMS_free(oaep);
ASN1_STRING_free(os); ASN1_STRING_free(os);
return rv; return rv;

View File

@ -106,7 +106,6 @@ _STACK *sk_dup(_STACK *sk)
ret->comp = sk->comp; ret->comp = sk->comp;
return (ret); return (ret);
err: err:
if (ret)
sk_free(ret); sk_free(ret);
return (NULL); return (NULL);
} }

View File

@ -346,7 +346,7 @@ static int mem_list_end(STORE *s, void *handle)
STOREerr(STORE_F_MEM_LIST_END, ERR_R_PASSED_NULL_PARAMETER); STOREerr(STORE_F_MEM_LIST_END, ERR_R_PASSED_NULL_PARAMETER);
return 0; return 0;
} }
if (context && context->search_attributes) if (context)
sk_STORE_ATTR_INFO_free(context->search_attributes); sk_STORE_ATTR_INFO_free(context->search_attributes);
OPENSSL_free(context); OPENSSL_free(context);
return 1; return 1;

View File

@ -718,7 +718,6 @@ static int TS_check_signer_name(GENERAL_NAME *tsa_name, X509 *signer)
gen_names = X509_get_ext_d2i(signer, NID_subject_alt_name, gen_names = X509_get_ext_d2i(signer, NID_subject_alt_name,
NULL, &idx); NULL, &idx);
} }
if (gen_names)
GENERAL_NAMES_free(gen_names); GENERAL_NAMES_free(gen_names);
return found; return found;

View File

@ -71,7 +71,6 @@ const char TXT_DB_version[] = "TXT_DB" OPENSSL_VERSION_PTEXT;
TXT_DB *TXT_DB_read(BIO *in, int num) TXT_DB *TXT_DB_read(BIO *in, int num)
{ {
TXT_DB *ret = NULL; TXT_DB *ret = NULL;
int er = 1;
int esc = 0; int esc = 0;
long ln = 0; long ln = 0;
int i, add, n; int i, add, n;
@ -161,36 +160,23 @@ TXT_DB *TXT_DB_read(BIO *in, int num)
"wrong number of fields on line %ld (looking for field %d, got %d, '%s' left)\n", "wrong number of fields on line %ld (looking for field %d, got %d, '%s' left)\n",
ln, num, n, f); ln, num, n, f);
#endif #endif
er = 2;
goto err; goto err;
} }
pp[n] = p; pp[n] = p;
if (!sk_OPENSSL_PSTRING_push(ret->data, pp)) { if (!sk_OPENSSL_PSTRING_push(ret->data, pp))
#if !defined(OPENSSL_NO_STDIO) /* temporary fix :-( */
fprintf(stderr, "failure in sk_push\n");
#endif
er = 2;
goto err; goto err;
} }
} BUF_MEM_free(buf);
er = 0; return ret;
err: err:
BUF_MEM_free(buf); BUF_MEM_free(buf);
if (er) {
#if !defined(OPENSSL_NO_STDIO)
if (er == 1)
fprintf(stderr, "OPENSSL_malloc failure\n");
#endif
if (ret != NULL) { if (ret != NULL) {
if (ret->data != NULL)
sk_OPENSSL_PSTRING_free(ret->data); sk_OPENSSL_PSTRING_free(ret->data);
OPENSSL_free(ret->index); OPENSSL_free(ret->index);
OPENSSL_free(ret->qual); OPENSSL_free(ret->qual);
OPENSSL_free(ret); OPENSSL_free(ret);
} }
return (NULL); return (NULL);
} else
return (ret);
} }
OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx,
@ -242,7 +228,6 @@ int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *),
return (0); return (0);
} }
} }
if (db->index[field] != NULL)
lh_OPENSSL_STRING_free(db->index[field]); lh_OPENSSL_STRING_free(db->index[field]);
db->index[field] = idx; db->index[field] = idx;
db->qual[field] = qual; db->qual[field] = qual;
@ -292,7 +277,6 @@ long TXT_DB_write(BIO *out, TXT_DB *db)
} }
ret = tot; ret = tot;
err: err:
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
return (ret); return (ret);
} }
@ -343,7 +327,6 @@ void TXT_DB_free(TXT_DB *db)
if (db->index != NULL) { if (db->index != NULL) {
for (i = db->num_fields - 1; i >= 0; i--) for (i = db->num_fields - 1; i >= 0; i--)
if (db->index[i] != NULL)
lh_OPENSSL_STRING_free(db->index[i]); lh_OPENSSL_STRING_free(db->index[i]);
OPENSSL_free(db->index); OPENSSL_free(db->index);
} }

View File

@ -177,7 +177,6 @@ static int by_dir_hash_cmp(const BY_DIR_HASH *const *a,
static void by_dir_entry_free(BY_DIR_ENTRY *ent) static void by_dir_entry_free(BY_DIR_ENTRY *ent)
{ {
OPENSSL_free(ent->dir); OPENSSL_free(ent->dir);
if (ent->hashes)
sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free); sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free);
OPENSSL_free(ent); OPENSSL_free(ent);
} }
@ -187,9 +186,7 @@ static void free_dir(X509_LOOKUP *lu)
BY_DIR *a; BY_DIR *a;
a = (BY_DIR *)lu->method_data; a = (BY_DIR *)lu->method_data;
if (a->dirs != NULL)
sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free); sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free);
if (a->buffer != NULL)
BUF_MEM_free(a->buffer); BUF_MEM_free(a->buffer);
OPENSSL_free(a); OPENSSL_free(a);
} }
@ -435,7 +432,6 @@ static int get_cert_by_subject(X509_LOOKUP *xl, int type, X509_NAME *name,
} }
} }
finish: finish:
if (b != NULL)
BUF_MEM_free(b); BUF_MEM_free(b);
return (ok); return (ok);
} }

View File

@ -207,7 +207,6 @@ char *X509_NAME_oneline(X509_NAME *a, char *buf, int len)
return (p); return (p);
err: err:
X509err(X509_F_X509_NAME_ONELINE, ERR_R_MALLOC_FAILURE); X509err(X509_F_X509_NAME_ONELINE, ERR_R_MALLOC_FAILURE);
if (b != NULL)
BUF_MEM_free(b); BUF_MEM_free(b);
return (NULL); return (NULL);
} }

View File

@ -1020,10 +1020,8 @@ static int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509_CRL **pdcrl,
*pscore = best_score; *pscore = best_score;
*preasons = best_reasons; *preasons = best_reasons;
CRYPTO_add(&best_crl->references, 1, CRYPTO_LOCK_X509_CRL); CRYPTO_add(&best_crl->references, 1, CRYPTO_LOCK_X509_CRL);
if (*pdcrl) {
X509_CRL_free(*pdcrl); X509_CRL_free(*pdcrl);
*pdcrl = NULL; *pdcrl = NULL;
}
get_delta_sk(ctx, pdcrl, pscore, best_crl, crls); get_delta_sk(ctx, pdcrl, pscore, best_crl, crls);
} }

View File

@ -83,8 +83,6 @@ static void str_free(char *s)
OPENSSL_free(s); OPENSSL_free(s);
} }
#define string_stack_free(sk) sk_OPENSSL_STRING_pop_free(sk, str_free)
static int int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode, static int int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode,
const char *name, size_t namelen) const char *name, size_t namelen)
{ {
@ -101,8 +99,8 @@ static int int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode,
if (name && name[namelen - 1] == '\0') if (name && name[namelen - 1] == '\0')
--namelen; --namelen;
if (mode == SET_HOST && id->hosts) { if (mode == SET_HOST) {
string_stack_free(id->hosts); sk_OPENSSL_STRING_pop_free(id->hosts, str_free);
id->hosts = NULL; id->hosts = NULL;
} }
if (name == NULL || namelen == 0) if (name == NULL || namelen == 0)
@ -147,7 +145,7 @@ static void x509_verify_param_zero(X509_VERIFY_PARAM *param)
sk_ASN1_OBJECT_pop_free(param->policies, ASN1_OBJECT_free); sk_ASN1_OBJECT_pop_free(param->policies, ASN1_OBJECT_free);
param->policies = NULL; param->policies = NULL;
paramid = param->id; paramid = param->id;
string_stack_free(paramid->hosts); sk_OPENSSL_STRING_pop_free(paramid->hosts, str_free);
paramid->hosts = NULL; paramid->hosts = NULL;
OPENSSL_free(paramid->peername); OPENSSL_free(paramid->peername);
OPENSSL_free(paramid->email); OPENSSL_free(paramid->email);
@ -287,10 +285,8 @@ int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest,
/* Copy the host flags if and only if we're copying the host list */ /* Copy the host flags if and only if we're copying the host list */
if (test_x509_verify_param_copy_id(hosts, NULL)) { if (test_x509_verify_param_copy_id(hosts, NULL)) {
if (dest->id->hosts) { sk_OPENSSL_STRING_pop_free(dest->id->hosts, str_free);
string_stack_free(dest->id->hosts);
dest->id->hosts = NULL; dest->id->hosts = NULL;
}
if (id->hosts) { if (id->hosts) {
dest->id->hosts = dest->id->hosts =
sk_OPENSSL_STRING_deep_copy(id->hosts, str_copy, str_free); sk_OPENSSL_STRING_deep_copy(id->hosts, str_copy, str_free);

View File

@ -110,7 +110,6 @@ static int policy_cache_create(X509 *x,
bad_policy: bad_policy:
if (ret == -1) if (ret == -1)
x->ex_flags |= EXFLAG_INVALID_POLICY; x->ex_flags |= EXFLAG_INVALID_POLICY;
if (data)
policy_data_free(data); policy_data_free(data);
sk_POLICYINFO_pop_free(policies, POLICYINFO_free); sk_POLICYINFO_pop_free(policies, POLICYINFO_free);
if (ret <= 0) { if (ret <= 0) {
@ -206,11 +205,8 @@ static int policy_cache_new(X509 *x)
x->ex_flags |= EXFLAG_INVALID_POLICY; x->ex_flags |= EXFLAG_INVALID_POLICY;
just_cleanup: just_cleanup:
if (ext_pcons)
POLICY_CONSTRAINTS_free(ext_pcons); POLICY_CONSTRAINTS_free(ext_pcons);
ASN1_INTEGER_free(ext_any); ASN1_INTEGER_free(ext_any);
return 1; return 1;
} }
@ -219,7 +215,6 @@ void policy_cache_free(X509_POLICY_CACHE *cache)
{ {
if (!cache) if (!cache)
return; return;
if (cache->anyPolicy)
policy_data_free(cache->anyPolicy); policy_data_free(cache->anyPolicy);
sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free); sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free);
OPENSSL_free(cache); OPENSSL_free(cache);

View File

@ -67,6 +67,8 @@
void policy_data_free(X509_POLICY_DATA *data) void policy_data_free(X509_POLICY_DATA *data)
{ {
if (!data)
return;
ASN1_OBJECT_free(data->valid_policy); ASN1_OBJECT_free(data->valid_policy);
/* Don't free qualifiers if shared */ /* Don't free qualifiers if shared */
if (!(data->flags & POLICY_DATA_FLAG_SHARED_QUALIFIERS)) if (!(data->flags & POLICY_DATA_FLAG_SHARED_QUALIFIERS))

View File

@ -657,7 +657,6 @@ void X509_policy_tree_free(X509_POLICY_TREE *tree)
for (i = 0, curr = tree->levels; i < tree->nlevel; i++, curr++) { for (i = 0, curr = tree->levels; i < tree->nlevel; i++, curr++) {
X509_free(curr->cert); X509_free(curr->cert);
sk_X509_POLICY_NODE_pop_free(curr->nodes, policy_node_free); sk_X509_POLICY_NODE_pop_free(curr->nodes, policy_node_free);
if (curr->anyPolicy)
policy_node_free(curr->anyPolicy); policy_node_free(curr->anyPolicy);
} }

View File

@ -173,7 +173,6 @@ static int set_dist_point_name(DIST_POINT_NAME **pdp, X509V3_CTX *ctx,
return 1; return 1;
err: err:
if (fnm)
sk_GENERAL_NAME_pop_free(fnm, GENERAL_NAME_free); sk_GENERAL_NAME_pop_free(fnm, GENERAL_NAME_free);
sk_X509_NAME_ENTRY_pop_free(rnm, X509_NAME_ENTRY_free); sk_X509_NAME_ENTRY_pop_free(rnm, X509_NAME_ENTRY_free);
return -1; return -1;
@ -279,7 +278,6 @@ static DIST_POINT *crldp_from_section(X509V3_CTX *ctx,
return point; return point;
err: err:
if (point)
DIST_POINT_free(point); DIST_POINT_free(point);
return NULL; return NULL;
} }

View File

@ -48,11 +48,8 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
return ret; return ret;
} }

View File

@ -68,16 +68,12 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(rcert); X509_free(rcert);
EVP_PKEY_free(rkey); EVP_PKEY_free(rkey);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
BIO_free(dcont); BIO_free(dcont);
return ret; return ret;
} }

View File

@ -59,15 +59,11 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(rcert); X509_free(rcert);
EVP_PKEY_free(rkey); EVP_PKEY_free(rkey);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -77,16 +77,12 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(rcert); X509_free(rcert);
sk_X509_pop_free(recips, X509_free); sk_X509_pop_free(recips, X509_free);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(dout); BIO_free(dout);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -73,15 +73,11 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(rcert); X509_free(rcert);
sk_X509_pop_free(recips, X509_free); sk_X509_pop_free(recips, X509_free);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -69,15 +69,11 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(scert); X509_free(scert);
EVP_PKEY_free(skey); EVP_PKEY_free(skey);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -77,9 +77,7 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(scert); X509_free(scert);
EVP_PKEY_free(skey); EVP_PKEY_free(skey);
X509_free(scert2); X509_free(scert2);
@ -87,7 +85,5 @@ int main(int argc, char **argv)
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -42,12 +42,8 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
return ret; return ret;
} }

View File

@ -67,15 +67,10 @@ int main(int argc, char **argv)
ERR_print_errors_fp(stderr); ERR_print_errors_fp(stderr);
} }
if (cms)
CMS_ContentInfo_free(cms); CMS_ContentInfo_free(cms);
X509_free(cacert); X509_free(cacert);
BIO_free(in); BIO_free(in);
BIO_free(out); BIO_free(out);
BIO_free(tbio); BIO_free(tbio);
return ret; return ret;
} }

View File

@ -596,7 +596,6 @@ static int ibmca_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa)
rsa->dmq1, rsa->iqmp, ctx); rsa->dmq1, rsa->iqmp, ctx);
} }
err: err:
if (ctx)
BN_CTX_free(ctx); BN_CTX_free(ctx);
return to_return; return to_return;
} }

View File

@ -109,8 +109,8 @@ int fill_GOST2001_params(EC_KEY *eckey, int nid)
} }
ok = 1; ok = 1;
err: err:
if (P) EC_POINT_free(P); EC_POINT_free(P);
if (grp) EC_GROUP_free(grp); EC_GROUP_free(grp);
if (ctx) if (ctx)
BN_CTX_end(ctx); BN_CTX_end(ctx);
BN_CTX_free(ctx); BN_CTX_free(ctx);
@ -243,7 +243,7 @@ DSA_SIG *gost2001_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
if (ctx) if (ctx)
BN_CTX_end(ctx); BN_CTX_end(ctx);
BN_CTX_free(ctx); BN_CTX_free(ctx);
if (C) EC_POINT_free(C); EC_POINT_free(C);
BN_free(md); BN_free(md);
if (!ret) if (!ret)
DSA_SIG_free(newsig); DSA_SIG_free(newsig);
@ -361,7 +361,7 @@ int gost2001_do_verify(const unsigned char *dgst, int dgst_len,
ok = 1; ok = 1;
} }
err: err:
if (C) EC_POINT_free(C); EC_POINT_free(C);
if (ctx) if (ctx)
BN_CTX_end(ctx); BN_CTX_end(ctx);
BN_CTX_free(ctx); BN_CTX_free(ctx);
@ -413,7 +413,7 @@ int gost2001_compute_public(EC_KEY *ec)
} }
ok = 256; ok = 256;
err: err:
if (pub_key) EC_POINT_free(pub_key); EC_POINT_free(pub_key);
if (ctx) if (ctx)
BN_CTX_end(ctx); BN_CTX_end(ctx);
BN_CTX_free(ctx); BN_CTX_free(ctx);

View File

@ -285,7 +285,6 @@ int pkey_GOST01cp_decrypt(EVP_PKEY_CTX *pctx, unsigned char *key,
ret = 1; ret = 1;
err: err:
EVP_PKEY_free(eph_key); EVP_PKEY_free(eph_key);
if (gkt)
GOST_KEY_TRANSPORT_free(gkt); GOST_KEY_TRANSPORT_free(gkt);
return ret; return ret;
} }

View File

@ -203,7 +203,8 @@ static hm_fragment *dtls1_hm_fragment_new(unsigned long frag_len,
void dtls1_hm_fragment_free(hm_fragment *frag) void dtls1_hm_fragment_free(hm_fragment *frag)
{ {
if (!frag)
return;
if (frag->msg_header.is_ccs) { if (frag->msg_header.is_ccs) {
EVP_CIPHER_CTX_free(frag->msg_header. EVP_CIPHER_CTX_free(frag->msg_header.
saved_retransmit_state.enc_write_ctx); saved_retransmit_state.enc_write_ctx);
@ -724,7 +725,7 @@ dtls1_reassemble_fragment(SSL *s, const struct hm_header_st *msg_hdr, int *ok)
return DTLS1_HM_FRAGMENT_RETRY; return DTLS1_HM_FRAGMENT_RETRY;
err: err:
if (frag != NULL && item == NULL) if (item == NULL)
dtls1_hm_fragment_free(frag); dtls1_hm_fragment_free(frag);
*ok = 0; *ok = 0;
return i; return i;
@ -821,7 +822,7 @@ dtls1_process_out_of_seq_message(SSL *s, const struct hm_header_st *msg_hdr,
return DTLS1_HM_FRAGMENT_RETRY; return DTLS1_HM_FRAGMENT_RETRY;
err: err:
if (frag != NULL && item == NULL) if (item == NULL)
dtls1_hm_fragment_free(frag); dtls1_hm_fragment_free(frag);
*ok = 0; *ok = 0;
return i; return i;

View File

@ -781,7 +781,6 @@ int dtls1_connect(SSL *s)
s->in_handshake, NULL); s->in_handshake, NULL);
#endif #endif
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
if (cb != NULL) if (cb != NULL)
cb(s, SSL_CB_CONNECT_EXIT, ret); cb(s, SSL_CB_CONNECT_EXIT, ret);

View File

@ -153,9 +153,7 @@ int dtls1_new(SSL *s)
d1->mtu = 0; d1->mtu = 0;
if (!d1->buffered_messages || !d1->sent_messages) { if (!d1->buffered_messages || !d1->sent_messages) {
if (d1->buffered_messages)
pqueue_free(d1->buffered_messages); pqueue_free(d1->buffered_messages);
if (d1->sent_messages)
pqueue_free(d1->sent_messages); pqueue_free(d1->sent_messages);
OPENSSL_free(d1); OPENSSL_free(d1);
ssl3_free(s); ssl3_free(s);

View File

@ -140,11 +140,8 @@ int DTLS_RECORD_LAYER_new(RECORD_LAYER *rl)
if (!d->unprocessed_rcds.q || !d->processed_rcds.q if (!d->unprocessed_rcds.q || !d->processed_rcds.q
|| !d->buffered_app_data.q) { || !d->buffered_app_data.q) {
if (d->unprocessed_rcds.q)
pqueue_free(d->unprocessed_rcds.q); pqueue_free(d->unprocessed_rcds.q);
if (d->processed_rcds.q)
pqueue_free(d->processed_rcds.q); pqueue_free(d->processed_rcds.q);
if (d->buffered_app_data.q)
pqueue_free(d->buffered_app_data.q); pqueue_free(d->buffered_app_data.q);
OPENSSL_free(d); OPENSSL_free(d);
rl->d = NULL; rl->d = NULL;
@ -266,9 +263,7 @@ int dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority)
item = pitem_new(priority, rdata); item = pitem_new(priority, rdata);
if (rdata == NULL || item == NULL) { if (rdata == NULL || item == NULL) {
OPENSSL_free(rdata); OPENSSL_free(rdata);
if (item != NULL)
pitem_free(item); pitem_free(item);
SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR); SSLerr(SSL_F_DTLS1_BUFFER_RECORD, ERR_R_INTERNAL_ERROR);
return -1; return -1;
} }

View File

@ -249,7 +249,6 @@ int ssl23_connect(SSL *s)
} }
end: end:
s->in_handshake--; s->in_handshake--;
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
if (cb != NULL) if (cb != NULL)
cb(s, SSL_CB_CONNECT_EXIT, ret); cb(s, SSL_CB_CONNECT_EXIT, ret);

View File

@ -599,11 +599,8 @@ int ssl3_connect(SSL *s)
case SSL_ST_OK: case SSL_ST_OK:
/* clean a few things up */ /* clean a few things up */
ssl3_cleanup_key_block(s); ssl3_cleanup_key_block(s);
if (s->init_buf != NULL) {
BUF_MEM_free(s->init_buf); BUF_MEM_free(s->init_buf);
s->init_buf = NULL; s->init_buf = NULL;
}
/* /*
* If we are not 'joining' the last two packets, remove the * If we are not 'joining' the last two packets, remove the
@ -657,7 +654,6 @@ int ssl3_connect(SSL *s)
} }
end: end:
s->in_handshake--; s->in_handshake--;
if (buf != NULL)
BUF_MEM_free(buf); BUF_MEM_free(buf);
if (cb != NULL) if (cb != NULL)
cb(s, SSL_CB_CONNECT_EXIT, ret); cb(s, SSL_CB_CONNECT_EXIT, ret);
@ -3319,7 +3315,6 @@ int ssl3_send_client_certificate(SSL *s)
} }
X509_free(x509); X509_free(x509);
if (pkey != NULL)
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
if (i && !ssl3_check_client_certificate(s)) if (i && !ssl3_check_client_certificate(s))
i = 0; i = 0;

View File

@ -3131,7 +3131,6 @@ void ssl3_free(SSL *s)
if (s->s3->handshake_dgst) if (s->s3->handshake_dgst)
ssl3_free_digest_list(s); ssl3_free_digest_list(s);
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
if (s->s3->alpn_selected)
OPENSSL_free(s->s3->alpn_selected); OPENSSL_free(s->s3->alpn_selected);
#endif #endif

View File

@ -1272,14 +1272,9 @@ int ssl3_get_client_hello(SSL *s)
} }
s->session->cipher = pref_cipher; s->session->cipher = pref_cipher;
if (s->cipher_list)
sk_SSL_CIPHER_free(s->cipher_list); sk_SSL_CIPHER_free(s->cipher_list);
if (s->cipher_list_by_id)
sk_SSL_CIPHER_free(s->cipher_list_by_id);
s->cipher_list = sk_SSL_CIPHER_dup(s->session->ciphers); s->cipher_list = sk_SSL_CIPHER_dup(s->session->ciphers);
sk_SSL_CIPHER_free(s->cipher_list_by_id);
s->cipher_list_by_id = sk_SSL_CIPHER_dup(s->session->ciphers); s->cipher_list_by_id = sk_SSL_CIPHER_dup(s->session->ciphers);
} }
} }
@ -1371,7 +1366,6 @@ int ssl3_get_client_hello(SSL *s)
#else #else
s->session->compress_meth = (comp == NULL) ? 0 : comp->id; s->session->compress_meth = (comp == NULL) ? 0 : comp->id;
#endif #endif
if (s->session->ciphers != NULL)
sk_SSL_CIPHER_free(s->session->ciphers); sk_SSL_CIPHER_free(s->session->ciphers);
s->session->ciphers = ciphers; s->session->ciphers = ciphers;
if (ciphers == NULL) { if (ciphers == NULL) {
@ -1452,7 +1446,6 @@ int ssl3_get_client_hello(SSL *s)
ssl3_send_alert(s, SSL3_AL_FATAL, al); ssl3_send_alert(s, SSL3_AL_FATAL, al);
} }
err: err:
if (ciphers != NULL)
sk_SSL_CIPHER_free(ciphers); sk_SSL_CIPHER_free(ciphers);
return ret < 0 ? -1 : ret; return ret < 0 ? -1 : ret;
} }
@ -3127,11 +3120,9 @@ int ssl3_get_cert_verify(SSL *s)
ssl3_send_alert(s, SSL3_AL_FATAL, al); ssl3_send_alert(s, SSL3_AL_FATAL, al);
} }
end: end:
if (s->s3->handshake_buffer) {
BIO_free(s->s3->handshake_buffer); BIO_free(s->s3->handshake_buffer);
s->s3->handshake_buffer = NULL; s->s3->handshake_buffer = NULL;
s->s3->flags &= ~TLS1_FLAGS_KEEP_HANDSHAKE; s->s3->flags &= ~TLS1_FLAGS_KEEP_HANDSHAKE;
}
EVP_MD_CTX_cleanup(&mctx); EVP_MD_CTX_cleanup(&mctx);
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
return (ret); return (ret);

View File

@ -405,11 +405,9 @@ void ssl_cert_clear_certs(CERT *c)
sk_X509_pop_free(cpk->chain, X509_free); sk_X509_pop_free(cpk->chain, X509_free);
cpk->chain = NULL; cpk->chain = NULL;
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
if (cpk->serverinfo) {
OPENSSL_free(cpk->serverinfo); OPENSSL_free(cpk->serverinfo);
cpk->serverinfo = NULL; cpk->serverinfo = NULL;
cpk->serverinfo_length = 0; cpk->serverinfo_length = 0;
}
#endif #endif
/* Clear all flags apart from explicit sign */ /* Clear all flags apart from explicit sign */
cpk->valid_flags &= CERT_PKEY_EXPLICIT_SIGN; cpk->valid_flags &= CERT_PKEY_EXPLICIT_SIGN;
@ -447,19 +445,13 @@ void ssl_cert_free(CERT *c)
#endif #endif
ssl_cert_clear_certs(c); ssl_cert_clear_certs(c);
if (c->peer_sigalgs)
OPENSSL_free(c->peer_sigalgs); OPENSSL_free(c->peer_sigalgs);
if (c->conf_sigalgs)
OPENSSL_free(c->conf_sigalgs); OPENSSL_free(c->conf_sigalgs);
if (c->client_sigalgs)
OPENSSL_free(c->client_sigalgs); OPENSSL_free(c->client_sigalgs);
if (c->shared_sigalgs)
OPENSSL_free(c->shared_sigalgs); OPENSSL_free(c->shared_sigalgs);
if (c->ctypes)
OPENSSL_free(c->ctypes); OPENSSL_free(c->ctypes);
X509_STORE_free(c->verify_store); X509_STORE_free(c->verify_store);
X509_STORE_free(c->chain_store); X509_STORE_free(c->chain_store);
if (c->ciphers_raw)
OPENSSL_free(c->ciphers_raw); OPENSSL_free(c->ciphers_raw);
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
custom_exts_free(&c->cli_ext); custom_exts_free(&c->cli_ext);
@ -624,11 +616,10 @@ void ssl_sess_cert_free(SESS_CERT *sc)
X509_free(sc->peer_pkeys[i].x509); X509_free(sc->peer_pkeys[i].x509);
#if 0 #if 0
/* /*
* We don't have the peer's private key. These lines are just * We don't have the peer's private key. This line is just
* here as a reminder that we're still using a not-quite-appropriate * here as a reminder that we're still using a not-quite-appropriate
* data structure. * data structure.
*/ */
if (sc->peer_pkeys[i].privatekey != NULL)
EVP_PKEY_free(sc->peer_pkeys[i].privatekey); EVP_PKEY_free(sc->peer_pkeys[i].privatekey);
#endif #endif
} }
@ -917,7 +908,6 @@ int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
ret = 0; ret = 0;
done: done:
BIO_free(in); BIO_free(in);
if (x != NULL)
X509_free(x); X509_free(x);
(void)sk_X509_NAME_set_cmp_func(stack, oldcmp); (void)sk_X509_NAME_set_cmp_func(stack, oldcmp);
return ret; return ret;

View File

@ -1600,7 +1600,6 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, STACK
sk_SSL_CIPHER_free(cipherstack); sk_SSL_CIPHER_free(cipherstack);
return NULL; return NULL;
} }
if (*cipher_list != NULL)
sk_SSL_CIPHER_free(*cipher_list); sk_SSL_CIPHER_free(*cipher_list);
*cipher_list = cipherstack; *cipher_list = cipherstack;
if (*cipher_list_by_id != NULL) if (*cipher_list_by_id != NULL)

View File

@ -216,15 +216,11 @@ int SSL_clear(SSL *s)
s->client_version = s->version; s->client_version = s->version;
s->rwstate = SSL_NOTHING; s->rwstate = SSL_NOTHING;
if (s->init_buf != NULL) {
BUF_MEM_free(s->init_buf); BUF_MEM_free(s->init_buf);
s->init_buf = NULL; s->init_buf = NULL;
}
ssl_clear_cipher_ctx(s); ssl_clear_cipher_ctx(s);
ssl_clear_hash_ctx(&s->read_hash); ssl_clear_hash_ctx(&s->read_hash);
ssl_clear_hash_ctx(&s->write_hash); ssl_clear_hash_ctx(&s->write_hash);
s->first_packet = 0; s->first_packet = 0;
/* /*
@ -547,13 +543,10 @@ void SSL_free(SSL *s)
if (s->wbio != s->rbio) if (s->wbio != s->rbio)
BIO_free_all(s->wbio); BIO_free_all(s->wbio);
if (s->init_buf != NULL)
BUF_MEM_free(s->init_buf); BUF_MEM_free(s->init_buf);
/* add extra stuff */ /* add extra stuff */
if (s->cipher_list != NULL)
sk_SSL_CIPHER_free(s->cipher_list); sk_SSL_CIPHER_free(s->cipher_list);
if (s->cipher_list_by_id != NULL)
sk_SSL_CIPHER_free(s->cipher_list_by_id); sk_SSL_CIPHER_free(s->cipher_list_by_id);
/* Make the next call work :-) */ /* Make the next call work :-) */
@ -577,7 +570,6 @@ void SSL_free(SSL *s)
OPENSSL_free(s->tlsext_ellipticcurvelist); OPENSSL_free(s->tlsext_ellipticcurvelist);
# endif /* OPENSSL_NO_EC */ # endif /* OPENSSL_NO_EC */
sk_X509_EXTENSION_pop_free(s->tlsext_ocsp_exts, X509_EXTENSION_free); sk_X509_EXTENSION_pop_free(s->tlsext_ocsp_exts, X509_EXTENSION_free);
if (s->tlsext_ocsp_ids)
sk_OCSP_RESPID_pop_free(s->tlsext_ocsp_ids, OCSP_RESPID_free); sk_OCSP_RESPID_pop_free(s->tlsext_ocsp_ids, OCSP_RESPID_free);
OPENSSL_free(s->tlsext_ocsp_resp); OPENSSL_free(s->tlsext_ocsp_resp);
OPENSSL_free(s->alpn_client_proto_list); OPENSSL_free(s->alpn_client_proto_list);
@ -602,7 +594,6 @@ void SSL_free(SSL *s)
#endif #endif
#ifndef OPENSSL_NO_SRTP #ifndef OPENSSL_NO_SRTP
if (s->srtp_profiles)
sk_SRTP_PROTECTION_PROFILE_free(s->srtp_profiles); sk_SRTP_PROTECTION_PROFILE_free(s->srtp_profiles);
#endif #endif
@ -1499,7 +1490,6 @@ STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s, unsigned char *p,
sk_SSL_CIPHER_zero(sk); sk_SSL_CIPHER_zero(sk);
} }
if (s->cert->ciphers_raw)
OPENSSL_free(s->cert->ciphers_raw); OPENSSL_free(s->cert->ciphers_raw);
s->cert->ciphers_raw = BUF_memdup(p, num); s->cert->ciphers_raw = BUF_memdup(p, num);
if (s->cert->ciphers_raw == NULL) { if (s->cert->ciphers_raw == NULL) {
@ -1721,9 +1711,7 @@ void SSL_CTX_set_next_proto_select_cb(SSL_CTX *ctx,
int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
unsigned protos_len) unsigned protos_len)
{ {
if (ctx->alpn_client_proto_list)
OPENSSL_free(ctx->alpn_client_proto_list); OPENSSL_free(ctx->alpn_client_proto_list);
ctx->alpn_client_proto_list = OPENSSL_malloc(protos_len); ctx->alpn_client_proto_list = OPENSSL_malloc(protos_len);
if (!ctx->alpn_client_proto_list) if (!ctx->alpn_client_proto_list)
return 1; return 1;
@ -1741,9 +1729,7 @@ int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
unsigned protos_len) unsigned protos_len)
{ {
if (ssl->alpn_client_proto_list)
OPENSSL_free(ssl->alpn_client_proto_list); OPENSSL_free(ssl->alpn_client_proto_list);
ssl->alpn_client_proto_list = OPENSSL_malloc(protos_len); ssl->alpn_client_proto_list = OPENSSL_malloc(protos_len);
if (!ssl->alpn_client_proto_list) if (!ssl->alpn_client_proto_list)
return 1; return 1;
@ -2037,27 +2023,18 @@ void SSL_CTX_free(SSL_CTX *a)
SSL_CTX_flush_sessions(a, 0); SSL_CTX_flush_sessions(a, 0);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data); CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);
if (a->sessions != NULL)
lh_SSL_SESSION_free(a->sessions); lh_SSL_SESSION_free(a->sessions);
X509_STORE_free(a->cert_store); X509_STORE_free(a->cert_store);
if (a->cipher_list != NULL)
sk_SSL_CIPHER_free(a->cipher_list); sk_SSL_CIPHER_free(a->cipher_list);
if (a->cipher_list_by_id != NULL)
sk_SSL_CIPHER_free(a->cipher_list_by_id); sk_SSL_CIPHER_free(a->cipher_list_by_id);
ssl_cert_free(a->cert); ssl_cert_free(a->cert);
sk_X509_NAME_pop_free(a->client_CA, X509_NAME_free); sk_X509_NAME_pop_free(a->client_CA, X509_NAME_free);
sk_X509_pop_free(a->extra_certs, X509_free); sk_X509_pop_free(a->extra_certs, X509_free);
a->comp_methods = NULL; a->comp_methods = NULL;
#ifndef OPENSSL_NO_SRTP #ifndef OPENSSL_NO_SRTP
if (a->srtp_profiles)
sk_SRTP_PROTECTION_PROFILE_free(a->srtp_profiles); sk_SRTP_PROTECTION_PROFILE_free(a->srtp_profiles);
#endif #endif
#ifndef OPENSSL_NO_PSK #ifndef OPENSSL_NO_PSK
if (a->psk_identity_hint)
OPENSSL_free(a->psk_identity_hint); OPENSSL_free(a->psk_identity_hint);
#endif #endif
#ifndef OPENSSL_NO_SRP #ifndef OPENSSL_NO_SRP
@ -2070,12 +2047,9 @@ void SSL_CTX_free(SSL_CTX *a)
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
# ifndef OPENSSL_NO_EC # ifndef OPENSSL_NO_EC
if (a->tlsext_ecpointformatlist)
OPENSSL_free(a->tlsext_ecpointformatlist); OPENSSL_free(a->tlsext_ecpointformatlist);
if (a->tlsext_ellipticcurvelist)
OPENSSL_free(a->tlsext_ellipticcurvelist); OPENSSL_free(a->tlsext_ellipticcurvelist);
# endif /* OPENSSL_NO_EC */ # endif
if (a->alpn_client_proto_list != NULL)
OPENSSL_free(a->alpn_client_proto_list); OPENSSL_free(a->alpn_client_proto_list);
#endif #endif
@ -3259,7 +3233,6 @@ int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint)
SSL_R_DATA_LENGTH_TOO_LONG); SSL_R_DATA_LENGTH_TOO_LONG);
return 0; return 0;
} }
if (ctx->psk_identity_hint != NULL)
OPENSSL_free(ctx->psk_identity_hint); OPENSSL_free(ctx->psk_identity_hint);
if (identity_hint != NULL) { if (identity_hint != NULL) {
ctx->psk_identity_hint = BUF_strdup(identity_hint); ctx->psk_identity_hint = BUF_strdup(identity_hint);
@ -3282,7 +3255,6 @@ int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint)
SSLerr(SSL_F_SSL_USE_PSK_IDENTITY_HINT, SSL_R_DATA_LENGTH_TOO_LONG); SSLerr(SSL_F_SSL_USE_PSK_IDENTITY_HINT, SSL_R_DATA_LENGTH_TOO_LONG);
return 0; return 0;
} }
if (s->session->psk_identity_hint != NULL)
OPENSSL_free(s->session->psk_identity_hint); OPENSSL_free(s->session->psk_identity_hint);
if (identity_hint != NULL) { if (identity_hint != NULL) {
s->session->psk_identity_hint = BUF_strdup(identity_hint); s->session->psk_identity_hint = BUF_strdup(identity_hint);

View File

@ -212,12 +212,10 @@ static int ssl_set_pkey(CERT *c, EVP_PKEY *pkey)
} }
} }
if (c->pkeys[i].privatekey != NULL)
EVP_PKEY_free(c->pkeys[i].privatekey); EVP_PKEY_free(c->pkeys[i].privatekey);
CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY); CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY);
c->pkeys[i].privatekey = pkey; c->pkeys[i].privatekey = pkey;
c->key = &(c->pkeys[i]); c->key = &(c->pkeys[i]);
c->valid = 0; c->valid = 0;
return (1); return (1);
} }
@ -715,7 +713,6 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file)
} }
end: end:
if (x != NULL)
X509_free(x); X509_free(x);
BIO_free(in); BIO_free(in);
return (ret); return (ret);

View File

@ -733,30 +733,22 @@ void SSL_SESSION_free(SSL_SESSION *ss)
OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); OPENSSL_cleanse(ss->session_id, sizeof ss->session_id);
ssl_sess_cert_free(ss->sess_cert); ssl_sess_cert_free(ss->sess_cert);
X509_free(ss->peer); X509_free(ss->peer);
if (ss->ciphers != NULL)
sk_SSL_CIPHER_free(ss->ciphers); sk_SSL_CIPHER_free(ss->ciphers);
#ifndef OPENSSL_NO_TLSEXT #ifndef OPENSSL_NO_TLSEXT
if (ss->tlsext_hostname != NULL)
OPENSSL_free(ss->tlsext_hostname); OPENSSL_free(ss->tlsext_hostname);
if (ss->tlsext_tick != NULL)
OPENSSL_free(ss->tlsext_tick); OPENSSL_free(ss->tlsext_tick);
# ifndef OPENSSL_NO_EC # ifndef OPENSSL_NO_EC
ss->tlsext_ecpointformatlist_length = 0; ss->tlsext_ecpointformatlist_length = 0;
if (ss->tlsext_ecpointformatlist != NULL)
OPENSSL_free(ss->tlsext_ecpointformatlist); OPENSSL_free(ss->tlsext_ecpointformatlist);
ss->tlsext_ellipticcurvelist_length = 0; ss->tlsext_ellipticcurvelist_length = 0;
if (ss->tlsext_ellipticcurvelist != NULL)
OPENSSL_free(ss->tlsext_ellipticcurvelist); OPENSSL_free(ss->tlsext_ellipticcurvelist);
# endif /* OPENSSL_NO_EC */ # endif /* OPENSSL_NO_EC */
#endif #endif
#ifndef OPENSSL_NO_PSK #ifndef OPENSSL_NO_PSK
if (ss->psk_identity_hint != NULL)
OPENSSL_free(ss->psk_identity_hint); OPENSSL_free(ss->psk_identity_hint);
if (ss->psk_identity != NULL)
OPENSSL_free(ss->psk_identity); OPENSSL_free(ss->psk_identity);
#endif #endif
#ifndef OPENSSL_NO_SRP #ifndef OPENSSL_NO_SRP
if (ss->srp_username != NULL)
OPENSSL_free(ss->srp_username); OPENSSL_free(ss->srp_username);
#endif #endif
OPENSSL_clear_free(ss, sizeof(*ss)); OPENSSL_clear_free(ss, sizeof(*ss));

View File

@ -241,7 +241,6 @@ int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)
if (!ret) if (!ret)
BIO_printf(out, " failed\n"); BIO_printf(out, " failed\n");
EC_KEY_free(key); EC_KEY_free(key);
if (signature)
ECDSA_SIG_free(signature); ECDSA_SIG_free(signature);
BN_free(r); BN_free(r);
BN_free(s); BN_free(s);
@ -502,7 +501,6 @@ int test_builtin(BIO *out)
builtin_err: builtin_err:
EC_KEY_free(eckey); EC_KEY_free(eckey);
EC_KEY_free(wrong_eckey); EC_KEY_free(wrong_eckey);
if (ecdsa_sig)
ECDSA_SIG_free(ecdsa_sig); ECDSA_SIG_free(ecdsa_sig);
OPENSSL_free(signature); OPENSSL_free(signature);
OPENSSL_free(raw_buf); OPENSSL_free(raw_buf);

View File

@ -251,12 +251,10 @@ static void free_expected(struct evp_test *t)
{ {
OPENSSL_free(t->expected_err); OPENSSL_free(t->expected_err);
t->expected_err = NULL; t->expected_err = NULL;
if (t->out_expected) {
OPENSSL_free(t->out_expected); OPENSSL_free(t->out_expected);
OPENSSL_free(t->out_got); OPENSSL_free(t->out_got);
t->out_expected = NULL; t->out_expected = NULL;
t->out_got = NULL; t->out_got = NULL;
}
} }
static void print_expected(struct evp_test *t) static void print_expected(struct evp_test *t)