summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2024-11-08 21:56:58 +0000
committertb <>2024-11-08 21:56:58 +0000
commit87e01b19e22b5aa813af998b149eb34fd96de895 (patch)
treef45e83abb03af3e8624bd646ee394b1468a99a81 /src/lib
parente71b1edd47d2200ba7c87b037cee0587f6dedf1e (diff)
downloadopenbsd-87e01b19e22b5aa813af998b149eb34fd96de895.tar.gz
openbsd-87e01b19e22b5aa813af998b149eb34fd96de895.tar.bz2
openbsd-87e01b19e22b5aa813af998b149eb34fd96de895.zip
Clean up EC_KEY_free
r is a silly name for an EC_KEY and it is silly to assign the refcount to a variable i (short for uninspired) when you can check the function return directly. Tweak sizeof in freezero to jsing's liking. ok beck jsing
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/ec/ec_key.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/lib/libcrypto/ec/ec_key.c b/src/lib/libcrypto/ec/ec_key.c
index c8f4c15bb5..753ababa31 100644
--- a/src/lib/libcrypto/ec/ec_key.c
+++ b/src/lib/libcrypto/ec/ec_key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_key.c,v 1.43 2024/11/08 21:53:54 tb Exp $ */ 1/* $OpenBSD: ec_key.c,v 1.44 2024/11/08 21:56:58 tb Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project. 3 * Written by Nils Larsch for the OpenSSL project.
4 */ 4 */
@@ -104,27 +104,24 @@ EC_KEY_new_by_curve_name(int nid)
104LCRYPTO_ALIAS(EC_KEY_new_by_curve_name); 104LCRYPTO_ALIAS(EC_KEY_new_by_curve_name);
105 105
106void 106void
107EC_KEY_free(EC_KEY *r) 107EC_KEY_free(EC_KEY *ec_key)
108{ 108{
109 int i; 109 if (ec_key == NULL)
110
111 if (r == NULL)
112 return; 110 return;
113 111
114 i = CRYPTO_add(&r->references, -1, CRYPTO_LOCK_EC); 112 if (CRYPTO_add(&ec_key->references, -1, CRYPTO_LOCK_EC) > 0)
115 if (i > 0)
116 return; 113 return;
117 114
118 if (r->meth != NULL && r->meth->finish != NULL) 115 if (ec_key->meth != NULL && ec_key->meth->finish != NULL)
119 r->meth->finish(r); 116 ec_key->meth->finish(ec_key);
120 117
121 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, r, &r->ex_data); 118 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, ec_key, &ec_key->ex_data);
122 119
123 EC_GROUP_free(r->group); 120 EC_GROUP_free(ec_key->group);
124 EC_POINT_free(r->pub_key); 121 EC_POINT_free(ec_key->pub_key);
125 BN_free(r->priv_key); 122 BN_free(ec_key->priv_key);
126 123
127 freezero(r, sizeof(EC_KEY)); 124 freezero(ec_key, sizeof(*ec_key));
128} 125}
129LCRYPTO_ALIAS(EC_KEY_free); 126LCRYPTO_ALIAS(EC_KEY_free);
130 127