diff options
Diffstat (limited to '')
23 files changed, 50 insertions, 42 deletions
diff --git a/src/lib/libcrypto/asn1/a_set.c b/src/lib/libcrypto/asn1/a_set.c index 3aeb7e54ff..8101f7722d 100644 --- a/src/lib/libcrypto/asn1/a_set.c +++ b/src/lib/libcrypto/asn1/a_set.c | |||
| @@ -121,7 +121,7 @@ i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, i2d_of_void *i2d, | |||
| 121 | 121 | ||
| 122 | pStart = p; /* Catch the beg of Setblobs*/ | 122 | pStart = p; /* Catch the beg of Setblobs*/ |
| 123 | /* In this array we will store the SET blobs */ | 123 | /* In this array we will store the SET blobs */ |
| 124 | rgSetBlob = malloc(sk_OPENSSL_BLOCK_num(a) * sizeof(MYBLOB)); | 124 | rgSetBlob = reallocarray(NULL, sk_OPENSSL_BLOCK_num(a), sizeof(MYBLOB)); |
| 125 | if (rgSetBlob == NULL) { | 125 | if (rgSetBlob == NULL) { |
| 126 | ASN1err(ASN1_F_I2D_ASN1_SET, ERR_R_MALLOC_FAILURE); | 126 | ASN1err(ASN1_F_I2D_ASN1_SET, ERR_R_MALLOC_FAILURE); |
| 127 | return 0; | 127 | return 0; |
diff --git a/src/lib/libcrypto/asn1/tasn_enc.c b/src/lib/libcrypto/asn1/tasn_enc.c index f5fc8820f6..cfceabe5a9 100644 --- a/src/lib/libcrypto/asn1/tasn_enc.c +++ b/src/lib/libcrypto/asn1/tasn_enc.c | |||
| @@ -435,7 +435,7 @@ asn1_set_seq_out(STACK_OF(ASN1_VALUE) *sk, unsigned char **out, int skcontlen, | |||
| 435 | if (sk_ASN1_VALUE_num(sk) < 2) | 435 | if (sk_ASN1_VALUE_num(sk) < 2) |
| 436 | do_sort = 0; | 436 | do_sort = 0; |
| 437 | else { | 437 | else { |
| 438 | derlst = malloc(sk_ASN1_VALUE_num(sk) * | 438 | derlst = reallocarray(NULL, sk_ASN1_VALUE_num(sk), |
| 439 | sizeof(*derlst)); | 439 | sizeof(*derlst)); |
| 440 | tmpdat = malloc(skcontlen); | 440 | tmpdat = malloc(skcontlen); |
| 441 | if (!derlst || !tmpdat) { | 441 | if (!derlst || !tmpdat) { |
diff --git a/src/lib/libcrypto/bn/bn_ctx.c b/src/lib/libcrypto/bn/bn_ctx.c index 7407dade50..2368e25183 100644 --- a/src/lib/libcrypto/bn/bn_ctx.c +++ b/src/lib/libcrypto/bn/bn_ctx.c | |||
| @@ -349,8 +349,8 @@ BN_STACK_push(BN_STACK *st, unsigned int idx) | |||
| 349 | { | 349 | { |
| 350 | unsigned int newsize = (st->size ? | 350 | unsigned int newsize = (st->size ? |
| 351 | (st->size * 3 / 2) : BN_CTX_START_FRAMES); | 351 | (st->size * 3 / 2) : BN_CTX_START_FRAMES); |
| 352 | unsigned int *newitems = malloc(newsize * | 352 | unsigned int *newitems = reallocarray(NULL, |
| 353 | sizeof(unsigned int)); | 353 | newsize, sizeof(unsigned int)); |
| 354 | if (!newitems) | 354 | if (!newitems) |
| 355 | return 0; | 355 | return 0; |
| 356 | if (st->depth) | 356 | if (st->depth) |
diff --git a/src/lib/libcrypto/bn/bn_gf2m.c b/src/lib/libcrypto/bn/bn_gf2m.c index 4000fb8733..4bd50924d3 100644 --- a/src/lib/libcrypto/bn/bn_gf2m.c +++ b/src/lib/libcrypto/bn/bn_gf2m.c | |||
| @@ -547,7 +547,7 @@ BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *p, | |||
| 547 | bn_check_top(a); | 547 | bn_check_top(a); |
| 548 | bn_check_top(b); | 548 | bn_check_top(b); |
| 549 | bn_check_top(p); | 549 | bn_check_top(p); |
| 550 | if ((arr = (int *)malloc(sizeof(int) * max)) == NULL) | 550 | if ((arr = reallocarray(NULL, sizeof(int), max)) == NULL) |
| 551 | goto err; | 551 | goto err; |
| 552 | ret = BN_GF2m_poly2arr(p, arr, max); | 552 | ret = BN_GF2m_poly2arr(p, arr, max); |
| 553 | if (!ret || ret > max) { | 553 | if (!ret || ret > max) { |
| @@ -609,7 +609,7 @@ BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) | |||
| 609 | 609 | ||
| 610 | bn_check_top(a); | 610 | bn_check_top(a); |
| 611 | bn_check_top(p); | 611 | bn_check_top(p); |
| 612 | if ((arr = (int *)malloc(sizeof(int) * max)) == NULL) | 612 | if ((arr = reallocarray(NULL, sizeof(int), max)) == NULL) |
| 613 | goto err; | 613 | goto err; |
| 614 | ret = BN_GF2m_poly2arr(p, arr, max); | 614 | ret = BN_GF2m_poly2arr(p, arr, max); |
| 615 | if (!ret || ret > max) { | 615 | if (!ret || ret > max) { |
| @@ -1037,7 +1037,7 @@ BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *p, | |||
| 1037 | bn_check_top(a); | 1037 | bn_check_top(a); |
| 1038 | bn_check_top(b); | 1038 | bn_check_top(b); |
| 1039 | bn_check_top(p); | 1039 | bn_check_top(p); |
| 1040 | if ((arr = (int *)malloc(sizeof(int) * max)) == NULL) | 1040 | if ((arr = reallocarray(NULL, sizeof(int), max)) == NULL) |
| 1041 | goto err; | 1041 | goto err; |
| 1042 | ret = BN_GF2m_poly2arr(p, arr, max); | 1042 | ret = BN_GF2m_poly2arr(p, arr, max); |
| 1043 | if (!ret || ret > max) { | 1043 | if (!ret || ret > max) { |
| @@ -1099,7 +1099,7 @@ BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) | |||
| 1099 | int *arr = NULL; | 1099 | int *arr = NULL; |
| 1100 | bn_check_top(a); | 1100 | bn_check_top(a); |
| 1101 | bn_check_top(p); | 1101 | bn_check_top(p); |
| 1102 | if ((arr = (int *)malloc(sizeof(int) * max)) == NULL) | 1102 | if ((arr = reallocarray(NULL, sizeof(int), max)) == NULL) |
| 1103 | goto err; | 1103 | goto err; |
| 1104 | ret = BN_GF2m_poly2arr(p, arr, max); | 1104 | ret = BN_GF2m_poly2arr(p, arr, max); |
| 1105 | if (!ret || ret > max) { | 1105 | if (!ret || ret > max) { |
| @@ -1234,7 +1234,7 @@ BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) | |||
| 1234 | 1234 | ||
| 1235 | bn_check_top(a); | 1235 | bn_check_top(a); |
| 1236 | bn_check_top(p); | 1236 | bn_check_top(p); |
| 1237 | if ((arr = (int *)malloc(sizeof(int) * max)) == NULL) | 1237 | if ((arr = reallocarray(NULL, sizeof(int), max)) == NULL) |
| 1238 | goto err; | 1238 | goto err; |
| 1239 | ret = BN_GF2m_poly2arr(p, arr, max); | 1239 | ret = BN_GF2m_poly2arr(p, arr, max); |
| 1240 | if (!ret || ret > max) { | 1240 | if (!ret || ret > max) { |
diff --git a/src/lib/libcrypto/bn/bn_lib.c b/src/lib/libcrypto/bn/bn_lib.c index a3a96662e8..28489f8181 100644 --- a/src/lib/libcrypto/bn/bn_lib.c +++ b/src/lib/libcrypto/bn/bn_lib.c | |||
| @@ -245,7 +245,7 @@ BN_new(void) | |||
| 245 | { | 245 | { |
| 246 | BIGNUM *ret; | 246 | BIGNUM *ret; |
| 247 | 247 | ||
| 248 | if ((ret = (BIGNUM *)malloc(sizeof(BIGNUM))) == NULL) { | 248 | if ((ret = malloc(sizeof(BIGNUM))) == NULL) { |
| 249 | BNerr(BN_F_BN_NEW, ERR_R_MALLOC_FAILURE); | 249 | BNerr(BN_F_BN_NEW, ERR_R_MALLOC_FAILURE); |
| 250 | return (NULL); | 250 | return (NULL); |
| 251 | } | 251 | } |
| @@ -278,7 +278,7 @@ bn_expand_internal(const BIGNUM *b, int words) | |||
| 278 | BN_R_EXPAND_ON_STATIC_BIGNUM_DATA); | 278 | BN_R_EXPAND_ON_STATIC_BIGNUM_DATA); |
| 279 | return (NULL); | 279 | return (NULL); |
| 280 | } | 280 | } |
| 281 | a = A = (BN_ULONG *)malloc(sizeof(BN_ULONG)*words); | 281 | a = A = reallocarray(NULL, sizeof(BN_ULONG), words); |
| 282 | if (A == NULL) { | 282 | if (A == NULL) { |
| 283 | BNerr(BN_F_BN_EXPAND_INTERNAL, ERR_R_MALLOC_FAILURE); | 283 | BNerr(BN_F_BN_EXPAND_INTERNAL, ERR_R_MALLOC_FAILURE); |
| 284 | return (NULL); | 284 | return (NULL); |
diff --git a/src/lib/libcrypto/bn/bn_print.c b/src/lib/libcrypto/bn/bn_print.c index 3a0fb25369..ea5fa5c3da 100644 --- a/src/lib/libcrypto/bn/bn_print.c +++ b/src/lib/libcrypto/bn/bn_print.c | |||
| @@ -116,7 +116,7 @@ BN_bn2dec(const BIGNUM *a) | |||
| 116 | */ | 116 | */ |
| 117 | i = BN_num_bits(a) * 3; | 117 | i = BN_num_bits(a) * 3; |
| 118 | num = (i / 10 + i / 1000 + 1) + 1; | 118 | num = (i / 10 + i / 1000 + 1) + 1; |
| 119 | bn_data = (BN_ULONG *)malloc((num / BN_DEC_NUM + 1) * sizeof(BN_ULONG)); | 119 | bn_data = reallocarray(NULL, num / BN_DEC_NUM + 1, sizeof(BN_ULONG)); |
| 120 | buf = (char *)malloc(num + 3); | 120 | buf = (char *)malloc(num + 3); |
| 121 | if ((buf == NULL) || (bn_data == NULL)) { | 121 | if ((buf == NULL) || (bn_data == NULL)) { |
| 122 | BNerr(BN_F_BN_BN2DEC, ERR_R_MALLOC_FAILURE); | 122 | BNerr(BN_F_BN_BN2DEC, ERR_R_MALLOC_FAILURE); |
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c index c0525c4940..b3bd34d82d 100644 --- a/src/lib/libcrypto/ec/ec_mult.c +++ b/src/lib/libcrypto/ec/ec_mult.c | |||
| @@ -425,11 +425,11 @@ 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 = malloc(totalnum * sizeof wsize[0]); | 428 | wsize = reallocarray(NULL, totalnum, sizeof wsize[0]); |
| 429 | wNAF_len = malloc(totalnum * sizeof wNAF_len[0]); | 429 | wNAF_len = reallocarray(NULL, totalnum, sizeof wNAF_len[0]); |
| 430 | wNAF = malloc((totalnum + 1) * sizeof wNAF[0]); /* includes space for | 430 | /* includes space for pivot */ |
| 431 | * pivot */ | 431 | wNAF = reallocarray(NULL, (totalnum + 1), sizeof wNAF[0]); |
| 432 | val_sub = malloc(totalnum * sizeof val_sub[0]); | 432 | val_sub = reallocarray(NULL, totalnum, sizeof val_sub[0]); |
| 433 | 433 | ||
| 434 | if (!wsize || !wNAF_len || !wNAF || !val_sub) { | 434 | if (!wsize || !wNAF_len || !wNAF || !val_sub) { |
| 435 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | 435 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); |
| @@ -573,7 +573,7 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar, | |||
| 573 | * to a subarray of 'pre_comp->points' if we already have | 573 | * to a subarray of 'pre_comp->points' if we already have |
| 574 | * precomputation. | 574 | * precomputation. |
| 575 | */ | 575 | */ |
| 576 | val = malloc((num_val + 1) * sizeof val[0]); | 576 | val = reallocarray(NULL, (num_val + 1), sizeof val[0]); |
| 577 | if (val == NULL) { | 577 | if (val == NULL) { |
| 578 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); | 578 | ECerr(EC_F_EC_WNAF_MUL, ERR_R_MALLOC_FAILURE); |
| 579 | goto err; | 579 | goto err; |
| @@ -790,7 +790,7 @@ ec_wNAF_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
| 790 | num = pre_points_per_block * numblocks; /* number of points to | 790 | num = pre_points_per_block * numblocks; /* number of points to |
| 791 | * compute and store */ | 791 | * compute and store */ |
| 792 | 792 | ||
| 793 | points = malloc(sizeof(EC_POINT *) * (num + 1)); | 793 | points = reallocarray(NULL, sizeof(EC_POINT *), (num + 1)); |
| 794 | if (!points) { | 794 | if (!points) { |
| 795 | ECerr(EC_F_EC_WNAF_PRECOMPUTE_MULT, ERR_R_MALLOC_FAILURE); | 795 | ECerr(EC_F_EC_WNAF_PRECOMPUTE_MULT, ERR_R_MALLOC_FAILURE); |
| 796 | goto err; | 796 | goto err; |
diff --git a/src/lib/libcrypto/ec/ecp_nistp224.c b/src/lib/libcrypto/ec/ecp_nistp224.c index 53aced54d5..6e9b9fac3c 100644 --- a/src/lib/libcrypto/ec/ecp_nistp224.c +++ b/src/lib/libcrypto/ec/ecp_nistp224.c | |||
| @@ -1438,7 +1438,8 @@ ec_GFp_nistp224_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 1438 | secrets = calloc(num_points, sizeof(felem_bytearray)); | 1438 | secrets = calloc(num_points, sizeof(felem_bytearray)); |
| 1439 | pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); | 1439 | pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); |
| 1440 | if (mixed) | 1440 | if (mixed) |
| 1441 | tmp_felems = malloc((num_points * 17 + 1) * sizeof(felem)); | 1441 | tmp_felems = reallocarray(NULL, |
| 1442 | (num_points * 17 + 1), sizeof(felem)); | ||
| 1442 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { | 1443 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { |
| 1443 | ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_MALLOC_FAILURE); | 1444 | ECerr(EC_F_EC_GFP_NISTP224_POINTS_MUL, ERR_R_MALLOC_FAILURE); |
| 1444 | goto err; | 1445 | goto err; |
diff --git a/src/lib/libcrypto/ec/ecp_nistp256.c b/src/lib/libcrypto/ec/ecp_nistp256.c index df80cc2b8a..b2398e106c 100644 --- a/src/lib/libcrypto/ec/ecp_nistp256.c +++ b/src/lib/libcrypto/ec/ecp_nistp256.c | |||
| @@ -1987,8 +1987,11 @@ ec_GFp_nistp256_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 1987 | } | 1987 | } |
| 1988 | secrets = calloc(num_points, sizeof(felem_bytearray)); | 1988 | secrets = calloc(num_points, sizeof(felem_bytearray)); |
| 1989 | pre_comp = calloc(num_points, 17 * 3 * sizeof(smallfelem)); | 1989 | pre_comp = calloc(num_points, 17 * 3 * sizeof(smallfelem)); |
| 1990 | if (mixed) | 1990 | if (mixed) { |
| 1991 | tmp_smallfelems = malloc((num_points * 17 + 1) * sizeof(smallfelem)); | 1991 | /* XXX should do more int overflow checking */ |
| 1992 | tmp_smallfelems = reallocarray(NULL, | ||
| 1993 | (num_points * 17 + 1), sizeof(smallfelem)); | ||
| 1994 | } | ||
| 1992 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_smallfelems == NULL))) { | 1995 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_smallfelems == NULL))) { |
| 1993 | ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_MALLOC_FAILURE); | 1996 | ECerr(EC_F_EC_GFP_NISTP256_POINTS_MUL, ERR_R_MALLOC_FAILURE); |
| 1994 | goto err; | 1997 | goto err; |
diff --git a/src/lib/libcrypto/ec/ecp_nistp521.c b/src/lib/libcrypto/ec/ecp_nistp521.c index 6792c5b71d..083e017cdc 100644 --- a/src/lib/libcrypto/ec/ecp_nistp521.c +++ b/src/lib/libcrypto/ec/ecp_nistp521.c | |||
| @@ -1874,8 +1874,11 @@ ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 1874 | } | 1874 | } |
| 1875 | secrets = calloc(num_points, sizeof(felem_bytearray)); | 1875 | secrets = calloc(num_points, sizeof(felem_bytearray)); |
| 1876 | pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); | 1876 | pre_comp = calloc(num_points, 17 * 3 * sizeof(felem)); |
| 1877 | if (mixed) | 1877 | if (mixed) { |
| 1878 | tmp_felems = malloc((num_points * 17 + 1) * sizeof(felem)); | 1878 | /* XXX should do more int overflow checking */ |
| 1879 | tmp_felems = reallocarray(NULL, | ||
| 1880 | (num_points * 17 + 1), sizeof(felem)); | ||
| 1881 | } | ||
| 1879 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { | 1882 | if ((secrets == NULL) || (pre_comp == NULL) || (mixed && (tmp_felems == NULL))) { |
| 1880 | ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_MALLOC_FAILURE); | 1883 | ECerr(EC_F_EC_GFP_NISTP521_POINTS_MUL, ERR_R_MALLOC_FAILURE); |
| 1881 | goto err; | 1884 | goto err; |
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c index b87410120d..46783a47a8 100644 --- a/src/lib/libcrypto/ec/ecp_smpl.c +++ b/src/lib/libcrypto/ec/ecp_smpl.c | |||
| @@ -1257,7 +1257,7 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
| 1257 | */ | 1257 | */ |
| 1258 | pow2 <<= 1; | 1258 | pow2 <<= 1; |
| 1259 | 1259 | ||
| 1260 | heap = malloc(pow2 * sizeof heap[0]); | 1260 | heap = reallocarray(NULL, pow2, sizeof heap[0]); |
| 1261 | if (heap == NULL) | 1261 | if (heap == NULL) |
| 1262 | goto err; | 1262 | goto err; |
| 1263 | 1263 | ||
diff --git a/src/lib/libcrypto/engine/eng_rsax.c b/src/lib/libcrypto/engine/eng_rsax.c index 1b15b6f1a3..0f8e1cd498 100644 --- a/src/lib/libcrypto/engine/eng_rsax.c +++ b/src/lib/libcrypto/engine/eng_rsax.c | |||
| @@ -268,7 +268,7 @@ static E_RSAX_MOD_CTX *e_rsax_get_ctx(RSA *rsa, int idx, BIGNUM* m) | |||
| 268 | 268 | ||
| 269 | hptr = RSA_get_ex_data(rsa, rsax_ex_data_idx); | 269 | hptr = RSA_get_ex_data(rsa, rsax_ex_data_idx); |
| 270 | if (!hptr) { | 270 | if (!hptr) { |
| 271 | hptr = malloc(3*sizeof(E_RSAX_MOD_CTX)); | 271 | hptr = reallocarray(NULL, 3, sizeof(E_RSAX_MOD_CTX)); |
| 272 | if (!hptr) return NULL; | 272 | if (!hptr) return NULL; |
| 273 | hptr[2].type = hptr[1].type= hptr[0].type = 0; | 273 | hptr[2].type = hptr[1].type= hptr[0].type = 0; |
| 274 | RSA_set_ex_data(rsa, rsax_ex_data_idx, hptr); | 274 | RSA_set_ex_data(rsa, rsax_ex_data_idx, hptr); |
diff --git a/src/lib/libcrypto/ex_data.c b/src/lib/libcrypto/ex_data.c index d8d25d320e..5cd01c72d1 100644 --- a/src/lib/libcrypto/ex_data.c +++ b/src/lib/libcrypto/ex_data.c | |||
| @@ -424,7 +424,7 @@ int_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad) | |||
| 424 | CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA); | 424 | CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA); |
| 425 | mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth); | 425 | mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth); |
| 426 | if (mx > 0) { | 426 | if (mx > 0) { |
| 427 | storage = malloc(mx * sizeof(CRYPTO_EX_DATA_FUNCS*)); | 427 | storage = reallocarray(NULL, mx, sizeof(CRYPTO_EX_DATA_FUNCS*)); |
| 428 | if (!storage) | 428 | if (!storage) |
| 429 | goto skip; | 429 | goto skip; |
| 430 | for (i = 0; i < mx; i++) | 430 | for (i = 0; i < mx; i++) |
| @@ -468,7 +468,7 @@ int_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from) | |||
| 468 | if (j < mx) | 468 | if (j < mx) |
| 469 | mx = j; | 469 | mx = j; |
| 470 | if (mx > 0) { | 470 | if (mx > 0) { |
| 471 | storage = malloc(mx * sizeof(CRYPTO_EX_DATA_FUNCS*)); | 471 | storage = reallocarray(NULL, mx, sizeof(CRYPTO_EX_DATA_FUNCS*)); |
| 472 | if (!storage) | 472 | if (!storage) |
| 473 | goto skip; | 473 | goto skip; |
| 474 | for (i = 0; i < mx; i++) | 474 | for (i = 0; i < mx; i++) |
| @@ -505,7 +505,7 @@ int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad) | |||
| 505 | CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA); | 505 | CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA); |
| 506 | mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth); | 506 | mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth); |
| 507 | if (mx > 0) { | 507 | if (mx > 0) { |
| 508 | storage = malloc(mx * sizeof(CRYPTO_EX_DATA_FUNCS*)); | 508 | storage = reallocarray(NULL, mx, sizeof(CRYPTO_EX_DATA_FUNCS*)); |
| 509 | if (!storage) | 509 | if (!storage) |
| 510 | goto skip; | 510 | goto skip; |
| 511 | for (i = 0; i < mx; i++) | 511 | for (i = 0; i < mx; i++) |
diff --git a/src/lib/libcrypto/lhash/lhash.c b/src/lib/libcrypto/lhash/lhash.c index ad24a7726b..e75a43f506 100644 --- a/src/lib/libcrypto/lhash/lhash.c +++ b/src/lib/libcrypto/lhash/lhash.c | |||
| @@ -119,7 +119,7 @@ lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c) | |||
| 119 | 119 | ||
| 120 | if ((ret = malloc(sizeof(_LHASH))) == NULL) | 120 | if ((ret = malloc(sizeof(_LHASH))) == NULL) |
| 121 | goto err0; | 121 | goto err0; |
| 122 | if ((ret->b = malloc(sizeof(LHASH_NODE *) * MIN_NODES)) == NULL) | 122 | if ((ret->b = reallocarray(NULL, sizeof(LHASH_NODE *), MIN_NODES)) == NULL) |
| 123 | goto err1; | 123 | goto err1; |
| 124 | for (i = 0; i < MIN_NODES; i++) | 124 | for (i = 0; i < MIN_NODES; i++) |
| 125 | ret->b[i] = NULL; | 125 | ret->b[i] = NULL; |
diff --git a/src/lib/libcrypto/objects/o_names.c b/src/lib/libcrypto/objects/o_names.c index 196d3ab0a7..169b8ae87d 100644 --- a/src/lib/libcrypto/objects/o_names.c +++ b/src/lib/libcrypto/objects/o_names.c | |||
| @@ -292,7 +292,8 @@ OBJ_NAME_do_all_sorted(int type, void (*fn)(const OBJ_NAME *, void *arg), | |||
| 292 | int n; | 292 | int n; |
| 293 | 293 | ||
| 294 | d.type = type; | 294 | d.type = type; |
| 295 | d.names = malloc(lh_OBJ_NAME_num_items(names_lh)*sizeof *d.names); | 295 | d.names = reallocarray(NULL, lh_OBJ_NAME_num_items(names_lh), |
| 296 | sizeof *d.names); | ||
| 296 | d.n = 0; | 297 | d.n = 0; |
| 297 | OBJ_NAME_do_all(type, do_all_sorted_fn, &d); | 298 | OBJ_NAME_do_all(type, do_all_sorted_fn, &d); |
| 298 | 299 | ||
diff --git a/src/lib/libcrypto/objects/obj_xref.c b/src/lib/libcrypto/objects/obj_xref.c index 25aed74ff1..8e9128efc4 100644 --- a/src/lib/libcrypto/objects/obj_xref.c +++ b/src/lib/libcrypto/objects/obj_xref.c | |||
| @@ -164,7 +164,7 @@ OBJ_add_sigid(int signid, int dig_id, int pkey_id) | |||
| 164 | sigx_app = sk_nid_triple_new(sigx_cmp); | 164 | sigx_app = sk_nid_triple_new(sigx_cmp); |
| 165 | if (!sigx_app) | 165 | if (!sigx_app) |
| 166 | return 0; | 166 | return 0; |
| 167 | ntr = malloc(sizeof(int) * 3); | 167 | ntr = reallocarray(NULL, sizeof(int), 3); |
| 168 | if (!ntr) | 168 | if (!ntr) |
| 169 | return 0; | 169 | return 0; |
| 170 | ntr->sign_id = signid; | 170 | ntr->sign_id = signid; |
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c index 58d2bfbee9..945262f019 100644 --- a/src/lib/libcrypto/pem/pem_lib.c +++ b/src/lib/libcrypto/pem/pem_lib.c | |||
| @@ -605,7 +605,7 @@ PEM_write_bio(BIO *bp, const char *name, char *header, unsigned char *data, | |||
| 605 | goto err; | 605 | goto err; |
| 606 | } | 606 | } |
| 607 | 607 | ||
| 608 | buf = malloc(PEM_BUFSIZE * 8); | 608 | buf = reallocarray(NULL, PEM_BUFSIZE, 8); |
| 609 | if (buf == NULL) { | 609 | if (buf == NULL) { |
| 610 | reason = ERR_R_MALLOC_FAILURE; | 610 | reason = ERR_R_MALLOC_FAILURE; |
| 611 | goto err; | 611 | goto err; |
diff --git a/src/lib/libcrypto/pem/pem_seal.c b/src/lib/libcrypto/pem/pem_seal.c index 92b70157cd..a7b9379223 100644 --- a/src/lib/libcrypto/pem/pem_seal.c +++ b/src/lib/libcrypto/pem/pem_seal.c | |||
| @@ -85,7 +85,7 @@ PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type, | |||
| 85 | if (j > max) | 85 | if (j > max) |
| 86 | max = j; | 86 | max = j; |
| 87 | } | 87 | } |
| 88 | s = (char *)malloc(max*2); | 88 | s = (char *)reallocarray(NULL, max, 2); |
| 89 | if (s == NULL) { | 89 | if (s == NULL) { |
| 90 | PEMerr(PEM_F_PEM_SEALINIT, ERR_R_MALLOC_FAILURE); | 90 | PEMerr(PEM_F_PEM_SEALINIT, ERR_R_MALLOC_FAILURE); |
| 91 | goto err; | 91 | goto err; |
| @@ -159,7 +159,7 @@ PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, | |||
| 159 | i = RSA_size(priv->pkey.rsa); | 159 | i = RSA_size(priv->pkey.rsa); |
| 160 | if (i < 100) | 160 | if (i < 100) |
| 161 | i = 100; | 161 | i = 100; |
| 162 | s = (unsigned char *)malloc(i*2); | 162 | s = reallocarray(NULL, i, 2); |
| 163 | if (s == NULL) { | 163 | if (s == NULL) { |
| 164 | PEMerr(PEM_F_PEM_SEALFINAL, ERR_R_MALLOC_FAILURE); | 164 | PEMerr(PEM_F_PEM_SEALFINAL, ERR_R_MALLOC_FAILURE); |
| 165 | goto err; | 165 | goto err; |
diff --git a/src/lib/libcrypto/srp/srp_lib.c b/src/lib/libcrypto/srp/srp_lib.c index a3a67eda2e..77e2c2c2f2 100644 --- a/src/lib/libcrypto/srp/srp_lib.c +++ b/src/lib/libcrypto/srp/srp_lib.c | |||
| @@ -121,7 +121,7 @@ BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N) | |||
| 121 | 121 | ||
| 122 | longN= BN_num_bytes(N); | 122 | longN= BN_num_bytes(N); |
| 123 | 123 | ||
| 124 | if ((cAB = malloc(2*longN)) == NULL) | 124 | if ((cAB = reallocarray(NULL, 2, longN)) == NULL) |
| 125 | return NULL; | 125 | return NULL; |
| 126 | 126 | ||
| 127 | memset(cAB, 0, longN); | 127 | memset(cAB, 0, longN); |
diff --git a/src/lib/libcrypto/srp/srp_vfy.c b/src/lib/libcrypto/srp/srp_vfy.c index de7dbe5bbd..6ad80ef992 100644 --- a/src/lib/libcrypto/srp/srp_vfy.c +++ b/src/lib/libcrypto/srp/srp_vfy.c | |||
| @@ -573,7 +573,7 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, | |||
| 573 | if(!SRP_create_verifier_BN(user, pass, &s, &v, N_bn, g_bn)) goto err; | 573 | if(!SRP_create_verifier_BN(user, pass, &s, &v, N_bn, g_bn)) goto err; |
| 574 | 574 | ||
| 575 | BN_bn2bin(v,tmp); | 575 | BN_bn2bin(v,tmp); |
| 576 | if (((vf = malloc(BN_num_bytes(v)*2)) == NULL)) | 576 | if (((vf = reallocarray(NULL, BN_num_bytes(v), 2)) == NULL)) |
| 577 | goto err; | 577 | goto err; |
| 578 | t_tob64(vf, tmp, BN_num_bytes(v)); | 578 | t_tob64(vf, tmp, BN_num_bytes(v)); |
| 579 | 579 | ||
| @@ -582,7 +582,7 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, | |||
| 582 | { | 582 | { |
| 583 | char *tmp_salt; | 583 | char *tmp_salt; |
| 584 | 584 | ||
| 585 | if ((tmp_salt = malloc(SRP_RANDOM_SALT_LEN * 2)) == NULL) | 585 | if ((tmp_salt = reallocarray(NULL, SRP_RANDOM_SALT_LEN, 2)) == NULL) |
| 586 | { | 586 | { |
| 587 | free(vf); | 587 | free(vf); |
| 588 | goto err; | 588 | goto err; |
diff --git a/src/lib/libcrypto/txt_db/txt_db.c b/src/lib/libcrypto/txt_db/txt_db.c index a2afa3df23..0f3a7ffbb3 100644 --- a/src/lib/libcrypto/txt_db/txt_db.c +++ b/src/lib/libcrypto/txt_db/txt_db.c | |||
| @@ -94,9 +94,9 @@ TXT_DB_read(BIO *in, int num) | |||
| 94 | ret->qual = NULL; | 94 | ret->qual = NULL; |
| 95 | if ((ret->data = sk_OPENSSL_PSTRING_new_null()) == NULL) | 95 | if ((ret->data = sk_OPENSSL_PSTRING_new_null()) == NULL) |
| 96 | goto err; | 96 | goto err; |
| 97 | if ((ret->index = malloc(sizeof(*ret->index)*num)) == NULL) | 97 | if ((ret->index = reallocarray(NULL, sizeof(*ret->index), num)) == NULL) |
| 98 | goto err; | 98 | goto err; |
| 99 | if ((ret->qual = malloc(sizeof(*(ret->qual))*num)) == NULL) | 99 | if ((ret->qual = reallocarray(NULL, sizeof(*(ret->qual)), num)) == NULL) |
| 100 | goto err; | 100 | goto err; |
| 101 | for (i = 0; i < num; i++) { | 101 | for (i = 0; i < num; i++) { |
| 102 | ret->index[i] = NULL; | 102 | ret->index[i] = NULL; |
diff --git a/src/lib/libcrypto/x509/x509spki.c b/src/lib/libcrypto/x509/x509spki.c index b5f67b5a97..23172fdb8e 100644 --- a/src/lib/libcrypto/x509/x509spki.c +++ b/src/lib/libcrypto/x509/x509spki.c | |||
| @@ -115,7 +115,7 @@ NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki) | |||
| 115 | int der_len; | 115 | int der_len; |
| 116 | der_len = i2d_NETSCAPE_SPKI(spki, NULL); | 116 | der_len = i2d_NETSCAPE_SPKI(spki, NULL); |
| 117 | der_spki = malloc(der_len); | 117 | der_spki = malloc(der_len); |
| 118 | b64_str = malloc(der_len * 2); | 118 | b64_str = reallocarray(NULL, der_len, 2); |
| 119 | if (!der_spki || !b64_str) { | 119 | if (!der_spki || !b64_str) { |
| 120 | X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE); | 120 | X509err(X509_F_NETSCAPE_SPKI_B64_ENCODE, ERR_R_MALLOC_FAILURE); |
| 121 | free(der_spki); | 121 | free(der_spki); |
diff --git a/src/lib/libcrypto/x509v3/pcy_tree.c b/src/lib/libcrypto/x509v3/pcy_tree.c index ebc4809371..080a87d674 100644 --- a/src/lib/libcrypto/x509v3/pcy_tree.c +++ b/src/lib/libcrypto/x509v3/pcy_tree.c | |||
| @@ -220,7 +220,7 @@ tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs, unsigned int flags) | |||
| 220 | return 0; | 220 | return 0; |
| 221 | 221 | ||
| 222 | tree->flags = 0; | 222 | tree->flags = 0; |
| 223 | tree->levels = malloc(sizeof(X509_POLICY_LEVEL) * n); | 223 | tree->levels = reallocarray(NULL, sizeof(X509_POLICY_LEVEL), n); |
| 224 | tree->nlevel = 0; | 224 | tree->nlevel = 0; |
| 225 | tree->extra_data = NULL; | 225 | tree->extra_data = NULL; |
| 226 | tree->auth_policies = NULL; | 226 | tree->auth_policies = NULL; |
