diff options
Diffstat (limited to '')
| -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 | ||
