diff options
-rw-r--r-- | src/lib/libcrypto/ec/ec_mult.c | 16 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/ec/ec_mult.c | 16 |
2 files changed, 22 insertions, 10 deletions
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c index 4e49ce4f7b..3dc17bc409 100644 --- a/src/lib/libcrypto/ec/ec_mult.c +++ b/src/lib/libcrypto/ec/ec_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_mult.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ec_mult.c,v 1.15 2014/11/11 06:23:43 guenther Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. | 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -425,17 +425,23 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar, | |||
425 | } | 425 | } |
426 | totalnum = num + numblocks; | 426 | totalnum = num + numblocks; |
427 | 427 | ||
428 | wsize = reallocarray(NULL, totalnum, sizeof wsize[0]); | ||
429 | wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]); | ||
430 | /* includes space for pivot */ | 428 | /* includes space for pivot */ |
431 | wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]); | 429 | wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]); |
430 | if (wNAF == NULL) { | ||
431 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | ||
432 | goto err; | ||
433 | } | ||
434 | |||
435 | wNAF[0] = NULL; /* preliminary pivot */ | ||
436 | |||
437 | wsize = reallocarray(NULL, totalnum, sizeof wsize[0]); | ||
438 | wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]); | ||
432 | val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]); | 439 | val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]); |
433 | 440 | ||
434 | if (!wsize || !wNAF_len || !wNAF || !val_sub) { | 441 | if (wsize == NULL || wNAF_len == NULL || val_sub == NULL) { |
435 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | 442 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); |
436 | goto err; | 443 | goto err; |
437 | } | 444 | } |
438 | wNAF[0] = NULL; /* preliminary pivot */ | ||
439 | 445 | ||
440 | /* num_val will be the total number of temporarily precomputed points */ | 446 | /* num_val will be the total number of temporarily precomputed points */ |
441 | num_val = 0; | 447 | num_val = 0; |
diff --git a/src/lib/libssl/src/crypto/ec/ec_mult.c b/src/lib/libssl/src/crypto/ec/ec_mult.c index 4e49ce4f7b..3dc17bc409 100644 --- a/src/lib/libssl/src/crypto/ec/ec_mult.c +++ b/src/lib/libssl/src/crypto/ec/ec_mult.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_mult.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ | 1 | /* $OpenBSD: ec_mult.c,v 1.15 2014/11/11 06:23:43 guenther Exp $ */ |
2 | /* | 2 | /* |
3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. | 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. |
4 | */ | 4 | */ |
@@ -425,17 +425,23 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar, | |||
425 | } | 425 | } |
426 | totalnum = num + numblocks; | 426 | totalnum = num + numblocks; |
427 | 427 | ||
428 | wsize = reallocarray(NULL, totalnum, sizeof wsize[0]); | ||
429 | wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]); | ||
430 | /* includes space for pivot */ | 428 | /* includes space for pivot */ |
431 | wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]); | 429 | wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]); |
430 | if (wNAF == NULL) { | ||
431 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | ||
432 | goto err; | ||
433 | } | ||
434 | |||
435 | wNAF[0] = NULL; /* preliminary pivot */ | ||
436 | |||
437 | wsize = reallocarray(NULL, totalnum, sizeof wsize[0]); | ||
438 | wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]); | ||
432 | val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]); | 439 | val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]); |
433 | 440 | ||
434 | if (!wsize || !wNAF_len || !wNAF || !val_sub) { | 441 | if (wsize == NULL || wNAF_len == NULL || val_sub == NULL) { |
435 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | 442 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); |
436 | goto err; | 443 | goto err; |
437 | } | 444 | } |
438 | wNAF[0] = NULL; /* preliminary pivot */ | ||
439 | 445 | ||
440 | /* num_val will be the total number of temporarily precomputed points */ | 446 | /* num_val will be the total number of temporarily precomputed points */ |
441 | num_val = 0; | 447 | num_val = 0; |