diff options
author | tb <> | 2024-11-06 09:13:11 +0000 |
---|---|---|
committer | tb <> | 2024-11-06 09:13:11 +0000 |
commit | 20567b9a7f9ca8de43817ce9003d72e58e9b361f (patch) | |
tree | 911199192fbe8f47a22d10e72204c8bb1d7ea1ae /src/lib | |
parent | 44fecf844216dcfcdd6c992dab1bb1842114b795 (diff) | |
download | openbsd-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.c | 26 |
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) | |||
183 | LCRYPTO_ALIAS(EC_GROUP_copy); | 183 | LCRYPTO_ALIAS(EC_GROUP_copy); |
184 | 184 | ||
185 | EC_GROUP * | 185 | EC_GROUP * |
186 | EC_GROUP_dup(const EC_GROUP *a) | 186 | EC_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 | } |
197 | LCRYPTO_ALIAS(EC_GROUP_dup); | 205 | LCRYPTO_ALIAS(EC_GROUP_dup); |
198 | 206 | ||