summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2024-11-06 09:13:11 +0000
committertb <>2024-11-06 09:13:11 +0000
commit20567b9a7f9ca8de43817ce9003d72e58e9b361f (patch)
tree911199192fbe8f47a22d10e72204c8bb1d7ea1ae /src/lib
parent44fecf844216dcfcdd6c992dab1bb1842114b795 (diff)
downloadopenbsd-20567b9a7f9ca8de43817ce9003d72e58e9b361f.tar.gz
openbsd-20567b9a7f9ca8de43817ce9003d72e58e9b361f.tar.bz2
openbsd-20567b9a7f9ca8de43817ce9003d72e58e9b361f.zip
Treat the curls in EC_GROUP_dup() with a flatiron
This was about as unreadable as four lines of code doing a trivial thing can get... ok jsing
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/ec/ec_lib.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c
index b136753be9..b1580d653f 100644
--- a/src/lib/libcrypto/ec/ec_lib.c
+++ b/src/lib/libcrypto/ec/ec_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_lib.c,v 1.81 2024/11/06 09:10:55 tb Exp $ */ 1/* $OpenBSD: ec_lib.c,v 1.82 2024/11/06 09:13:11 tb Exp $ */
2/* 2/*
3 * Originally written by Bodo Moeller for the OpenSSL project. 3 * Originally written by Bodo Moeller for the OpenSSL project.
4 */ 4 */
@@ -183,16 +183,24 @@ EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src)
183LCRYPTO_ALIAS(EC_GROUP_copy); 183LCRYPTO_ALIAS(EC_GROUP_copy);
184 184
185EC_GROUP * 185EC_GROUP *
186EC_GROUP_dup(const EC_GROUP *a) 186EC_GROUP_dup(const EC_GROUP *in_group)
187{ 187{
188 EC_GROUP *t = NULL; 188 EC_GROUP *group = NULL;
189 189
190 if ((a != NULL) && ((t = EC_GROUP_new(a->meth)) != NULL) && 190 if (in_group == NULL)
191 (!EC_GROUP_copy(t, a))) { 191 goto err;
192 EC_GROUP_free(t); 192
193 t = NULL; 193 if ((group = EC_GROUP_new(in_group->meth)) == NULL)
194 } 194 goto err;
195 return t; 195 if (!EC_GROUP_copy(group, in_group))
196 goto err;
197
198 return group;
199
200 err:
201 EC_GROUP_free(group);
202
203 return group;
196} 204}
197LCRYPTO_ALIAS(EC_GROUP_dup); 205LCRYPTO_ALIAS(EC_GROUP_dup);
198 206