summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libcrypto/free/Makefile11
-rw-r--r--src/regress/lib/libcrypto/free/freenull.awk60
-rw-r--r--src/regress/lib/libcrypto/free/freenull.c237
-rw-r--r--src/regress/lib/libcrypto/free/freenull.c.head27
-rw-r--r--src/regress/lib/libcrypto/free/freenull.c.tail27
5 files changed, 123 insertions, 239 deletions
diff --git a/src/regress/lib/libcrypto/free/Makefile b/src/regress/lib/libcrypto/free/Makefile
index cde5cb6702..dabc06262e 100644
--- a/src/regress/lib/libcrypto/free/Makefile
+++ b/src/regress/lib/libcrypto/free/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.1 2017/05/02 04:03:06 beck Exp $ 1# $OpenBSD: Makefile,v 1.2 2018/07/10 20:53:30 tb Exp $
2 2
3TESTS = \ 3TESTS = \
4 freenull 4 freenull
@@ -10,7 +10,14 @@ DPADD= ${LIBCRYPTO} ${LIBSSL}
10LDFLAGS+= -lcrypto 10LDFLAGS+= -lcrypto
11CFLAGS+= -DLIBRESSL_INTERNAL 11CFLAGS+= -DLIBRESSL_INTERNAL
12 12
13CLEANFILES+= ${TESTS} 13CLEANFILES+= ${TESTS} ${TESTS}.d freenull.c freenull.c.body freenull.c.tmp
14
15freenull.c: freenull.awk ../../../../lib/libcrypto/Symbols.list
16 awk -f ${.CURDIR}/freenull.awk \
17 < ${BSDSRCDIR}/lib/libcrypto/Symbols.list > freenull.c.body
18 cat ${.CURDIR}/freenull.c.head freenull.c.body \
19 ${.CURDIR}/freenull.c.tail > freenull.c.tmp
20 mv freenull.c.tmp freenull.c
14 21
15all_tests: ${TESTS} 22all_tests: ${TESTS}
16 @for test in $>; do \ 23 @for test in $>; do \
diff --git a/src/regress/lib/libcrypto/free/freenull.awk b/src/regress/lib/libcrypto/free/freenull.awk
new file mode 100644
index 0000000000..95719da956
--- /dev/null
+++ b/src/regress/lib/libcrypto/free/freenull.awk
@@ -0,0 +1,60 @@
1# $OpenBSD: freenull.awk,v 1.1 2018/07/10 20:53:30 tb Exp $
2# Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
3#
4# Permission to use, copy, modify, and distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
16# usage: awk -f freenull.awk < Symbols.list > freenull.c.body
17
18# Skip this function because it calls abort(3).
19/^CRYPTO_dbg_free/ {
20 next
21}
22
23# Skip *_free functions that take more than one or no argument.
24/^ASN1_item_ex_free$/ ||
25/^ASN1_item_free$/ ||
26/^ASN1_primitive_free$/ ||
27/^ASN1_template_free$/ ||
28/^CONF_modules_free$/ ||
29/^EVP_PKEY_asn1_set_free$/ ||
30/^OBJ_sigid_free$/ ||
31/^X509V3_section_free$/ ||
32/^X509V3_string_free$/ ||
33/^asn1_enc_free$/ ||
34/^sk_pop_free$/ {
35 next
36}
37
38# Skip functions that are prototyped in a .c file.
39/^BIO_CONNECT_free$/ ||
40/^CRYPTO_free$/ ||
41/^EC_PRIVATEKEY_free$/ ||
42/^ECPARAMETERS_free$/ ||
43/^ECPKPARAMETERS_free$/ ||
44/^NETSCAPE_ENCRYPTED_PKEY_free$/ ||
45/^NETSCAPE_PKEY_free$/ ||
46/^X9_62_CHARACTERISTIC_TWO_free$/ ||
47/^X9_62_PENTANOMIAL_free$/ {
48 next
49}
50
51/^ENGINE_free$/ {
52 printf("#ifndef OPENSSL_NO_ENGINE\n")
53 printf("\tENGINE_free(NULL);\n")
54 printf("#endif\n")
55 next
56}
57
58/_free$/ {
59 printf("\t%s(NULL);\n", $0)
60}
diff --git a/src/regress/lib/libcrypto/free/freenull.c b/src/regress/lib/libcrypto/free/freenull.c
deleted file mode 100644
index 2735e7f759..0000000000
--- a/src/regress/lib/libcrypto/free/freenull.c
+++ /dev/null
@@ -1,237 +0,0 @@
1/* $OpenBSD: freenull.c,v 1.13 2018/05/15 07:11:31 tb Exp $ */
2/*
3 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#include <openssl/asn1.h>
19#include <openssl/cmac.h>
20#include <openssl/comp.h>
21#include <openssl/conf_api.h>
22#include <openssl/dso.h>
23#ifndef OPENSSL_NO_ENGINE
24#include <openssl/engine.h>
25#endif
26#include <openssl/gost.h>
27#include <openssl/hmac.h>
28#include <openssl/ocsp.h>
29#include <openssl/pkcs12.h>
30#include <openssl/ts.h>
31#include <openssl/ui.h>
32#include <openssl/txt_db.h>
33#include <openssl/x509.h>
34#include <openssl/x509v3.h>
35
36#include <err.h>
37#include <stdio.h>
38#include <string.h>
39
40/* Make sure we do the right thing. Add here if you convert ones in tree */
41int
42main(int argc, char **argv)
43{
44 ACCESS_DESCRIPTION_free(NULL);
45 ASN1_BIT_STRING_free(NULL);
46 ASN1_BMPSTRING_free(NULL);
47 ASN1_ENUMERATED_free(NULL);
48 ASN1_GENERALIZEDTIME_free(NULL);
49 ASN1_GENERALSTRING_free(NULL);
50 ASN1_IA5STRING_free(NULL);
51 ASN1_INTEGER_free(NULL);
52 ASN1_NULL_free(NULL);
53 ASN1_OBJECT_free(NULL);
54 ASN1_OCTET_STRING_free(NULL);
55 ASN1_PCTX_free(NULL);
56 ASN1_PRINTABLESTRING_free(NULL);
57 ASN1_PRINTABLE_free(NULL);
58 ASN1_STRING_free(NULL);
59 ASN1_T61STRING_free(NULL);
60 ASN1_TIME_free(NULL);
61 ASN1_TYPE_free(NULL);
62 ASN1_UNIVERSALSTRING_free(NULL);
63 ASN1_UTCTIME_free(NULL);
64 ASN1_UTF8STRING_free(NULL);
65 ASN1_VISIBLESTRING_free(NULL);
66 AUTHORITY_INFO_ACCESS_free(NULL);
67 AUTHORITY_KEYID_free(NULL);
68 BASIC_CONSTRAINTS_free(NULL);
69 BIO_free(NULL);
70 BIO_free_all(NULL);
71 BIO_meth_free(NULL);
72 BN_BLINDING_free(NULL);
73 BN_CTX_free(NULL);
74 BN_GENCB_free(NULL);
75 BN_MONT_CTX_free(NULL);
76 BN_RECP_CTX_free(NULL);
77 BN_clear_free(NULL);
78 BN_free(NULL);
79 BUF_MEM_free(NULL);
80 CERTIFICATEPOLICIES_free(NULL);
81 CMAC_CTX_free(NULL);
82 COMP_CTX_free(NULL);
83 CONF_free(NULL);
84 CRL_DIST_POINTS_free(NULL);
85 DH_free(NULL);
86 DIRECTORYSTRING_free(NULL);
87 DISPLAYTEXT_free(NULL);
88 DIST_POINT_NAME_free(NULL);
89 DIST_POINT_free(NULL);
90 DSA_SIG_free(NULL);
91 DSA_free(NULL);
92 DSA_meth_free(NULL);
93 DSO_free(NULL);
94 ECDSA_SIG_free(NULL);
95 EC_GROUP_clear_free(NULL);
96 EC_GROUP_free(NULL);
97 EC_KEY_free(NULL);
98 EC_POINT_clear_free(NULL);
99 EC_POINT_free(NULL);
100 EDIPARTYNAME_free(NULL);
101#ifndef OPENSSL_NO_ENGINE
102 ENGINE_free(NULL);
103#endif
104 ESS_CERT_ID_free(NULL);
105 ESS_ISSUER_SERIAL_free(NULL);
106 ESS_SIGNING_CERT_free(NULL);
107 EVP_CIPHER_CTX_free(NULL);
108 EVP_MD_CTX_free(NULL);
109 EVP_PKEY_CTX_free(NULL);
110 EVP_PKEY_asn1_free(NULL);
111 EVP_PKEY_free(NULL);
112 EVP_PKEY_meth_free(NULL);
113 EXTENDED_KEY_USAGE_free(NULL);
114 GENERAL_NAMES_free(NULL);
115 GENERAL_NAME_free(NULL);
116 GENERAL_SUBTREE_free(NULL);
117 GOST_CIPHER_PARAMS_free(NULL);
118 GOST_KEY_free(NULL);
119 HMAC_CTX_free(NULL);
120 ISSUING_DIST_POINT_free(NULL);
121 NAME_CONSTRAINTS_free(NULL);
122 NCONF_free(NULL);
123 NCONF_free_data(NULL);
124 NETSCAPE_CERT_SEQUENCE_free(NULL);
125 NETSCAPE_SPKAC_free(NULL);
126 NETSCAPE_SPKI_free(NULL);
127 NETSCAPE_X509_free(NULL);
128 NOTICEREF_free(NULL);
129 OCSP_BASICRESP_free(NULL);
130 OCSP_CERTID_free(NULL);
131 OCSP_CERTSTATUS_free(NULL);
132 OCSP_CRLID_free(NULL);
133 OCSP_ONEREQ_free(NULL);
134 OCSP_REQINFO_free(NULL);
135 OCSP_REQUEST_free(NULL);
136 OCSP_REQ_CTX_free(NULL);
137 OCSP_RESPBYTES_free(NULL);
138 OCSP_RESPDATA_free(NULL);
139 OCSP_RESPID_free(NULL);
140 OCSP_RESPONSE_free(NULL);
141 OCSP_REVOKEDINFO_free(NULL);
142 OCSP_SERVICELOC_free(NULL);
143 OCSP_SIGNATURE_free(NULL);
144 OCSP_SINGLERESP_free(NULL);
145 OTHERNAME_free(NULL);
146 PBEPARAM_free(NULL);
147 PBKDF2PARAM_free(NULL);
148 PKCS12_BAGS_free(NULL);
149 PKCS12_MAC_DATA_free(NULL);
150 PKCS12_SAFEBAG_free(NULL);
151 PKCS12_free(NULL);
152 PKCS7_DIGEST_free(NULL);
153 PKCS7_ENCRYPT_free(NULL);
154 PKCS7_ENC_CONTENT_free(NULL);
155 PKCS7_ENVELOPE_free(NULL);
156 PKCS7_ISSUER_AND_SERIAL_free(NULL);
157 PKCS7_RECIP_INFO_free(NULL);
158 PKCS7_SIGNED_free(NULL);
159 PKCS7_SIGNER_INFO_free(NULL);
160 PKCS7_SIGN_ENVELOPE_free(NULL);
161 PKCS7_free(NULL);
162 PKCS8_PRIV_KEY_INFO_free(NULL);
163 PKEY_USAGE_PERIOD_free(NULL);
164 POLICYINFO_free(NULL);
165 POLICYQUALINFO_free(NULL);
166 POLICY_CONSTRAINTS_free(NULL);
167 POLICY_MAPPING_free(NULL);
168 PROXY_CERT_INFO_EXTENSION_free(NULL);
169 PROXY_POLICY_free(NULL);
170 RSA_PSS_PARAMS_free(NULL);
171 RSA_free(NULL);
172 RSA_meth_free(NULL);
173 SXNETID_free(NULL);
174 SXNET_free(NULL);
175 TS_ACCURACY_free(NULL);
176 TS_MSG_IMPRINT_free(NULL);
177 TS_REQ_ext_free(NULL);
178 TS_REQ_free(NULL);
179 TS_RESP_CTX_free(NULL);
180 TS_RESP_free(NULL);
181 TS_STATUS_INFO_free(NULL);
182 TS_TST_INFO_ext_free(NULL);
183 TS_TST_INFO_free(NULL);
184 TS_VERIFY_CTX_free(NULL);
185 TXT_DB_free(NULL);
186 UI_free(NULL);
187 USERNOTICE_free(NULL);
188 X509V3_conf_free(NULL);
189 X509_ALGOR_free(NULL);
190 X509_ATTRIBUTE_free(NULL);
191 X509_CERT_AUX_free(NULL);
192 X509_CERT_PAIR_free(NULL);
193 X509_CINF_free(NULL);
194 X509_CRL_INFO_free(NULL);
195 X509_CRL_METHOD_free(NULL);
196 X509_CRL_free(NULL);
197 X509_EXTENSION_free(NULL);
198 X509_INFO_free(NULL);
199 X509_LOOKUP_free(NULL);
200 X509_NAME_ENTRY_free(NULL);
201 X509_NAME_free(NULL);
202 X509_PKEY_free(NULL);
203 X509_PUBKEY_free(NULL);
204 X509_REQ_INFO_free(NULL);
205 X509_REQ_free(NULL);
206 X509_REVOKED_free(NULL);
207 X509_SIG_free(NULL);
208 X509_STORE_CTX_free(NULL);
209 X509_STORE_free(NULL);
210 X509_VAL_free(NULL);
211 X509_VERIFY_PARAM_free(NULL);
212 X509_email_free(NULL);
213 X509_free(NULL);
214 X509_policy_tree_free(NULL);
215
216 lh_FUNCTION_free(NULL);
217
218 sk_ASN1_OBJECT_pop_free(NULL, NULL);
219 sk_CONF_VALUE_pop_free(NULL, NULL);
220 sk_GENERAL_NAME_pop_free(NULL, NULL);
221 sk_OCSP_CERTID_free(NULL);
222 sk_OPENSSL_STRING_free(NULL);
223 sk_PKCS12_SAFEBAG_pop_free(NULL, NULL);
224 sk_PKCS7_pop_free(NULL, NULL);
225 sk_X509_ATTRIBUTE_free(NULL);
226 sk_X509_CRL_pop_free(NULL, NULL);
227 sk_X509_EXTENSION_pop_free(NULL, NULL);
228 sk_X509_INFO_free(NULL);
229 sk_X509_INFO_pop_free(NULL, NULL);
230 sk_X509_NAME_ENTRY_pop_free(NULL, NULL);
231 sk_X509_free(NULL);
232 sk_X509_pop_free(NULL, NULL);
233
234 printf("PASS\n");
235
236 return 0;
237}
diff --git a/src/regress/lib/libcrypto/free/freenull.c.head b/src/regress/lib/libcrypto/free/freenull.c.head
new file mode 100644
index 0000000000..b63703d7d2
--- /dev/null
+++ b/src/regress/lib/libcrypto/free/freenull.c.head
@@ -0,0 +1,27 @@
1/* freenull.c IS GENERATED BY 'make nulltests' DO NOT EDIT BY HAND */
2
3#include <openssl/asn1.h>
4#include <openssl/cmac.h>
5#include <openssl/comp.h>
6#include <openssl/conf_api.h>
7#include <openssl/dso.h>
8#ifndef OPENSSL_NO_ENGINE
9#include <openssl/engine.h>
10#endif
11#include <openssl/gost.h>
12#include <openssl/hmac.h>
13#include <openssl/ocsp.h>
14#include <openssl/pkcs12.h>
15#include <openssl/ts.h>
16#include <openssl/ui.h>
17#include <openssl/txt_db.h>
18#include <openssl/x509.h>
19#include <openssl/x509v3.h>
20
21#include <err.h>
22#include <stdio.h>
23#include <string.h>
24
25int
26main(int argc, char **argv)
27{
diff --git a/src/regress/lib/libcrypto/free/freenull.c.tail b/src/regress/lib/libcrypto/free/freenull.c.tail
new file mode 100644
index 0000000000..4300c38d98
--- /dev/null
+++ b/src/regress/lib/libcrypto/free/freenull.c.tail
@@ -0,0 +1,27 @@
1
2 BIO_free_all(NULL);
3 NCONF_free_data(NULL);
4 _CONF_free_data(NULL);
5
6 lh_FUNCTION_free(NULL);
7
8 sk_ASN1_OBJECT_pop_free(NULL, NULL);
9 sk_CONF_VALUE_pop_free(NULL, NULL);
10 sk_GENERAL_NAME_pop_free(NULL, NULL);
11 sk_OCSP_CERTID_free(NULL);
12 sk_OPENSSL_STRING_free(NULL);
13 sk_PKCS12_SAFEBAG_pop_free(NULL, NULL);
14 sk_PKCS7_pop_free(NULL, NULL);
15 sk_X509_ATTRIBUTE_free(NULL);
16 sk_X509_CRL_pop_free(NULL, NULL);
17 sk_X509_EXTENSION_pop_free(NULL, NULL);
18 sk_X509_INFO_free(NULL);
19 sk_X509_INFO_pop_free(NULL, NULL);
20 sk_X509_NAME_ENTRY_pop_free(NULL, NULL);
21 sk_X509_free(NULL);
22 sk_X509_pop_free(NULL, NULL);
23
24 printf("PASS\n");
25
26 return 0;
27}