summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/ec/ec_lib.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c
index 6da2026662..0dcee7b278 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.73 2024/10/22 12:06:08 tb Exp $ */ 1/* $OpenBSD: ec_lib.c,v 1.74 2024/10/25 00:37:51 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 */
@@ -452,19 +452,18 @@ EC_GROUP_get_point_conversion_form(const EC_GROUP *group)
452LCRYPTO_ALIAS(EC_GROUP_get_point_conversion_form); 452LCRYPTO_ALIAS(EC_GROUP_get_point_conversion_form);
453 453
454size_t 454size_t
455EC_GROUP_set_seed(EC_GROUP *group, const unsigned char *p, size_t len) 455EC_GROUP_set_seed(EC_GROUP *group, const unsigned char *seed, size_t len)
456{ 456{
457 if (group->seed) { 457 free(group->seed);
458 free(group->seed); 458 group->seed = NULL;
459 group->seed = NULL; 459 group->seed_len = 0;
460 group->seed_len = 0; 460
461 } 461 if (len == 0 || seed == NULL)
462 if (!len || !p)
463 return 1; 462 return 1;
464 463
465 if ((group->seed = malloc(len)) == NULL) 464 if ((group->seed = malloc(len)) == NULL)
466 return 0; 465 return 0;
467 memcpy(group->seed, p, len); 466 memcpy(group->seed, seed, len);
468 group->seed_len = len; 467 group->seed_len = len;
469 468
470 return len; 469 return len;