summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2018-04-23 08:07:50 +0000
committertb <>2018-04-23 08:07:50 +0000
commitc0bbb051da69fac60744f26d86e26e6f067ed8d3 (patch)
tree70d3436e989e9b6c64c18001917c3780bb054570
parentdc0b189f0af7e0aa3020fbab469519a0ef8f5bc5 (diff)
downloadopenbsd-c0bbb051da69fac60744f26d86e26e6f067ed8d3.tar.gz
openbsd-c0bbb051da69fac60744f26d86e26e6f067ed8d3.tar.bz2
openbsd-c0bbb051da69fac60744f26d86e26e6f067ed8d3.zip
Add a big pile of *_free() functions which I audited to be NULL-safe.
-rw-r--r--src/regress/lib/libcrypto/free/freenull.c111
1 files changed, 109 insertions, 2 deletions
diff --git a/src/regress/lib/libcrypto/free/freenull.c b/src/regress/lib/libcrypto/free/freenull.c
index 89cbd82539..cbc6fdd72b 100644
--- a/src/regress/lib/libcrypto/free/freenull.c
+++ b/src/regress/lib/libcrypto/free/freenull.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: freenull.c,v 1.7 2018/04/14 07:18:37 tb Exp $ */ 1/* $OpenBSD: freenull.c,v 1.8 2018/04/23 08:07:50 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2017 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -16,10 +16,15 @@
16 */ 16 */
17 17
18#include <openssl/asn1.h> 18#include <openssl/asn1.h>
19#include <openssl/ocsp.h> 19#include <openssl/cmac.h>
20#include <openssl/comp.h>
21#include <openssl/conf_api.h>
20#ifndef OPENSSL_NO_ENGINE 22#ifndef OPENSSL_NO_ENGINE
21#include <openssl/engine.h> 23#include <openssl/engine.h>
22#endif 24#endif
25#include <openssl/gost.h>
26#include <openssl/hmac.h>
27#include <openssl/ocsp.h>
23#include <openssl/pkcs12.h> 28#include <openssl/pkcs12.h>
24#include <openssl/ts.h> 29#include <openssl/ts.h>
25#include <openssl/ui.h> 30#include <openssl/ui.h>
@@ -35,74 +40,176 @@
35int 40int
36main(int argc, char **argv) 41main(int argc, char **argv)
37{ 42{
43 ACCESS_DESCRIPTION_free(NULL);
44 ASN1_BIT_STRING_free(NULL);
45 ASN1_BMPSTRING_free(NULL);
38 ASN1_ENUMERATED_free(NULL); 46 ASN1_ENUMERATED_free(NULL);
39 ASN1_GENERALIZEDTIME_free(NULL); 47 ASN1_GENERALIZEDTIME_free(NULL);
48 ASN1_GENERALSTRING_free(NULL);
49 ASN1_IA5STRING_free(NULL);
40 ASN1_INTEGER_free(NULL); 50 ASN1_INTEGER_free(NULL);
51 ASN1_NULL_free(NULL);
41 ASN1_OBJECT_free(NULL); 52 ASN1_OBJECT_free(NULL);
42 ASN1_OCTET_STRING_free(NULL); 53 ASN1_OCTET_STRING_free(NULL);
54 ASN1_PCTX_free(NULL);
55 ASN1_PRINTABLESTRING_free(NULL);
56 ASN1_PRINTABLE_free(NULL);
57 ASN1_STRING_free(NULL);
58 ASN1_T61STRING_free(NULL);
43 ASN1_TIME_free(NULL); 59 ASN1_TIME_free(NULL);
44 ASN1_TYPE_free(NULL); 60 ASN1_TYPE_free(NULL);
61 ASN1_UNIVERSALSTRING_free(NULL);
45 ASN1_UTCTIME_free(NULL); 62 ASN1_UTCTIME_free(NULL);
63 ASN1_UTF8STRING_free(NULL);
64 ASN1_VISIBLESTRING_free(NULL);
65 AUTHORITY_INFO_ACCESS_free(NULL);
66 AUTHORITY_KEYID_free(NULL);
67 BASIC_CONSTRAINTS_free(NULL);
46 BIO_free(NULL); 68 BIO_free(NULL);
47 BIO_free_all(NULL); 69 BIO_free_all(NULL);
70 BIO_meth_free(NULL);
71 BN_BLINDING_free(NULL);
72 BN_CTX_free(NULL);
73 BN_GENCB_free(NULL);
74 BN_MONT_CTX_free(NULL);
75 BN_RECP_CTX_free(NULL);
48 BN_clear_free(NULL); 76 BN_clear_free(NULL);
49 BN_free(NULL); 77 BN_free(NULL);
50 BUF_MEM_free(NULL); 78 BUF_MEM_free(NULL);
79 CERTIFICATEPOLICIES_free(NULL);
80 CMAC_CTX_free(NULL);
81 COMP_CTX_free(NULL);
51 CONF_free(NULL); 82 CONF_free(NULL);
83 CRL_DIST_POINTS_free(NULL);
52 DH_free(NULL); 84 DH_free(NULL);
85 DIRECTORYSTRING_free(NULL);
86 DISPLAYTEXT_free(NULL);
87 DIST_POINT_NAME_free(NULL);
53 DIST_POINT_free(NULL); 88 DIST_POINT_free(NULL);
54 DSA_SIG_free(NULL); 89 DSA_SIG_free(NULL);
55 DSA_free(NULL); 90 DSA_free(NULL);
91 DSA_meth_free(NULL);
56 ECDSA_SIG_free(NULL); 92 ECDSA_SIG_free(NULL);
93 EC_GROUP_clear_free(NULL);
57 EC_GROUP_free(NULL); 94 EC_GROUP_free(NULL);
58 EC_KEY_free(NULL); 95 EC_KEY_free(NULL);
59 EC_POINT_clear_free(NULL); 96 EC_POINT_clear_free(NULL);
60 EC_POINT_free(NULL); 97 EC_POINT_free(NULL);
98 EDIPARTYNAME_free(NULL);
61#ifndef OPENSSL_NO_ENGINE 99#ifndef OPENSSL_NO_ENGINE
62 ENGINE_free(NULL); 100 ENGINE_free(NULL);
63#endif 101#endif
102 ESS_CERT_ID_free(NULL);
103 ESS_ISSUER_SERIAL_free(NULL);
104 ESS_SIGNING_CERT_free(NULL);
64 EVP_CIPHER_CTX_free(NULL); 105 EVP_CIPHER_CTX_free(NULL);
106 EVP_MD_CTX_free(NULL);
65 EVP_PKEY_CTX_free(NULL); 107 EVP_PKEY_CTX_free(NULL);
108 EVP_PKEY_asn1_free(NULL);
66 EVP_PKEY_free(NULL); 109 EVP_PKEY_free(NULL);
110 EVP_PKEY_meth_free(NULL);
111 EXTENDED_KEY_USAGE_free(NULL);
112 GENERAL_NAMES_free(NULL);
67 GENERAL_NAME_free(NULL); 113 GENERAL_NAME_free(NULL);
68 GENERAL_SUBTREE_free(NULL); 114 GENERAL_SUBTREE_free(NULL);
115 GOST_CIPHER_PARAMS_free(NULL);
116 GOST_KEY_free(NULL);
117 HMAC_CTX_free(NULL);
118 ISSUING_DIST_POINT_free(NULL);
69 NAME_CONSTRAINTS_free(NULL); 119 NAME_CONSTRAINTS_free(NULL);
70 NCONF_free(NULL); 120 NCONF_free(NULL);
121 NCONF_free_data(NULL);
71 NETSCAPE_CERT_SEQUENCE_free(NULL); 122 NETSCAPE_CERT_SEQUENCE_free(NULL);
123 NETSCAPE_SPKAC_free(NULL);
72 NETSCAPE_SPKI_free(NULL); 124 NETSCAPE_SPKI_free(NULL);
73 NETSCAPE_X509_free(NULL); 125 NETSCAPE_X509_free(NULL);
126 NOTICEREF_free(NULL);
74 OCSP_BASICRESP_free(NULL); 127 OCSP_BASICRESP_free(NULL);
75 OCSP_CERTID_free(NULL); 128 OCSP_CERTID_free(NULL);
129 OCSP_CERTSTATUS_free(NULL);
130 OCSP_CRLID_free(NULL);
131 OCSP_ONEREQ_free(NULL);
132 OCSP_REQINFO_free(NULL);
76 OCSP_REQUEST_free(NULL); 133 OCSP_REQUEST_free(NULL);
77 OCSP_REQ_CTX_free(NULL); 134 OCSP_REQ_CTX_free(NULL);
135 OCSP_RESPBYTES_free(NULL);
136 OCSP_RESPDATA_free(NULL);
137 OCSP_RESPID_free(NULL);
78 OCSP_RESPONSE_free(NULL); 138 OCSP_RESPONSE_free(NULL);
139 OCSP_REVOKEDINFO_free(NULL);
140 OCSP_SERVICELOC_free(NULL);
141 OCSP_SIGNATURE_free(NULL);
142 OCSP_SINGLERESP_free(NULL);
143 OTHERNAME_free(NULL);
79 PBEPARAM_free(NULL); 144 PBEPARAM_free(NULL);
145 PBKDF2PARAM_free(NULL);
146 PKCS12_BAGS_free(NULL);
147 PKCS12_MAC_DATA_free(NULL);
148 PKCS12_SAFEBAG_free(NULL);
80 PKCS12_free(NULL); 149 PKCS12_free(NULL);
150 PKCS7_DIGEST_free(NULL);
151 PKCS7_ENCRYPT_free(NULL);
152 PKCS7_ENC_CONTENT_free(NULL);
153 PKCS7_ENVELOPE_free(NULL);
154 PKCS7_ISSUER_AND_SERIAL_free(NULL);
155 PKCS7_RECIP_INFO_free(NULL);
156 PKCS7_SIGNED_free(NULL);
157 PKCS7_SIGNER_INFO_free(NULL);
158 PKCS7_SIGN_ENVELOPE_free(NULL);
81 PKCS7_free(NULL); 159 PKCS7_free(NULL);
82 PKCS8_PRIV_KEY_INFO_free(NULL); 160 PKCS8_PRIV_KEY_INFO_free(NULL);
161 PKEY_USAGE_PERIOD_free(NULL);
162 POLICYINFO_free(NULL);
163 POLICYQUALINFO_free(NULL);
164 POLICY_CONSTRAINTS_free(NULL);
165 POLICY_MAPPING_free(NULL);
166 PROXY_CERT_INFO_EXTENSION_free(NULL);
167 PROXY_POLICY_free(NULL);
168 RSA_PSS_PARAMS_free(NULL);
83 RSA_free(NULL); 169 RSA_free(NULL);
170 RSA_meth_free(NULL);
171 SXNETID_free(NULL);
172 SXNET_free(NULL);
173 TS_ACCURACY_free(NULL);
84 TS_MSG_IMPRINT_free(NULL); 174 TS_MSG_IMPRINT_free(NULL);
175 TS_REQ_ext_free(NULL);
85 TS_REQ_free(NULL); 176 TS_REQ_free(NULL);
86 TS_RESP_CTX_free(NULL); 177 TS_RESP_CTX_free(NULL);
87 TS_RESP_free(NULL); 178 TS_RESP_free(NULL);
88 TS_STATUS_INFO_free(NULL); 179 TS_STATUS_INFO_free(NULL);
180 TS_TST_INFO_ext_free(NULL);
89 TS_TST_INFO_free(NULL); 181 TS_TST_INFO_free(NULL);
90 TS_VERIFY_CTX_free(NULL); 182 TS_VERIFY_CTX_free(NULL);
91 TXT_DB_free(NULL); 183 TXT_DB_free(NULL);
92 UI_free(NULL); 184 UI_free(NULL);
185 USERNOTICE_free(NULL);
186 X509V3_conf_free(NULL);
93 X509_ALGOR_free(NULL); 187 X509_ALGOR_free(NULL);
188 X509_ATTRIBUTE_free(NULL);
189 X509_CERT_AUX_free(NULL);
190 X509_CERT_PAIR_free(NULL);
191 X509_CINF_free(NULL);
192 X509_CRL_INFO_free(NULL);
94 X509_CRL_free(NULL); 193 X509_CRL_free(NULL);
95 X509_EXTENSION_free(NULL); 194 X509_EXTENSION_free(NULL);
96 X509_INFO_free(NULL); 195 X509_INFO_free(NULL);
196 X509_LOOKUP_free(NULL);
97 X509_NAME_ENTRY_free(NULL); 197 X509_NAME_ENTRY_free(NULL);
98 X509_NAME_free(NULL); 198 X509_NAME_free(NULL);
199 X509_PKEY_free(NULL);
200 X509_PUBKEY_free(NULL);
201 X509_REQ_INFO_free(NULL);
99 X509_REQ_free(NULL); 202 X509_REQ_free(NULL);
203 X509_REVOKED_free(NULL);
100 X509_SIG_free(NULL); 204 X509_SIG_free(NULL);
101 X509_STORE_CTX_free(NULL); 205 X509_STORE_CTX_free(NULL);
102 X509_STORE_free(NULL); 206 X509_STORE_free(NULL);
207 X509_VAL_free(NULL);
103 X509_VERIFY_PARAM_free(NULL); 208 X509_VERIFY_PARAM_free(NULL);
104 X509_email_free(NULL); 209 X509_email_free(NULL);
105 X509_free(NULL); 210 X509_free(NULL);
211 X509_policy_tree_free(NULL);
212 _CONF_free_data(NULL);
106 213
107 lh_FUNCTION_free(NULL); 214 lh_FUNCTION_free(NULL);
108 215