return 0;
}
- h = OPENSSL_realloc(pq->heap, new_max * sizeof(*pq->heap));
+ h = OPENSSL_realloc_array(pq->heap, new_max, sizeof(*pq->heap));
if (h == NULL)
return 0;
pq->heap = h;
- e = OPENSSL_realloc(pq->elements, new_max * sizeof(*pq->elements));
+ e = OPENSSL_realloc_array(pq->elements, new_max, sizeof(*pq->elements));
if (e == NULL)
return 0;
pq->elements = e;
pq->hmax = min_nodes;
pq->htop = 0;
pq->freelist = 0;
- pq->heap = OPENSSL_malloc(sizeof(*pq->heap) * min_nodes);
- pq->elements = OPENSSL_malloc(sizeof(*pq->elements) * min_nodes);
+ pq->heap = OPENSSL_malloc_array(min_nodes, sizeof(*pq->heap));
+ pq->elements = OPENSSL_malloc_array(min_nodes, sizeof(*pq->elements));
if (pq->heap == NULL || pq->elements == NULL) {
ossl_pqueue_free(pq);
return NULL;
}
if (mac_size > 0) {
- macbufs = OPENSSL_zalloc(sizeof(*macbufs) * num_recs);
+ macbufs = OPENSSL_calloc(num_recs, sizeof(*macbufs));
if (macbufs == NULL) {
RLAYERfatal(rl, SSL_AD_INTERNAL_ERROR, ERR_R_CRYPTO_LIB);
return OSSL_RECORD_RETURN_FATAL;
return NULL;
ret->ssl_pkey_num = ssl_pkey_num;
- ret->pkeys = OPENSSL_zalloc(ret->ssl_pkey_num * sizeof(CERT_PKEY));
+ ret->pkeys = OPENSSL_calloc(ret->ssl_pkey_num, sizeof(CERT_PKEY));
if (ret->pkeys == NULL) {
OPENSSL_free(ret);
return NULL;
return NULL;
ret->ssl_pkey_num = cert->ssl_pkey_num;
- ret->pkeys = OPENSSL_zalloc(ret->ssl_pkey_num * sizeof(CERT_PKEY));
+ ret->pkeys = OPENSSL_calloc(ret->ssl_pkey_num, sizeof(CERT_PKEY));
if (ret->pkeys == NULL) {
OPENSSL_free(ret);
return NULL;
/* Configured sigalgs copied across */
if (cert->conf_sigalgs) {
- ret->conf_sigalgs = OPENSSL_malloc(cert->conf_sigalgslen
- * sizeof(*cert->conf_sigalgs));
+ ret->conf_sigalgs = OPENSSL_malloc_array(cert->conf_sigalgslen,
+ sizeof(*cert->conf_sigalgs));
if (ret->conf_sigalgs == NULL)
goto err;
memcpy(ret->conf_sigalgs, cert->conf_sigalgs,
ret->conf_sigalgs = NULL;
if (cert->client_sigalgs) {
- ret->client_sigalgs = OPENSSL_malloc(cert->client_sigalgslen
- * sizeof(*cert->client_sigalgs));
+ ret->client_sigalgs =
+ OPENSSL_malloc_array(cert->client_sigalgslen,
+ sizeof(*cert->client_sigalgs));
if (ret->client_sigalgs == NULL)
goto err;
memcpy(ret->client_sigalgs, cert->client_sigalgs,
curr = curr->next;
}
- number_uses = OPENSSL_zalloc(sizeof(int) * (max_strength_bits + 1));
+ number_uses = OPENSSL_calloc(max_strength_bits + 1, sizeof(int));
if (number_uses == NULL)
return 0;
num_of_ciphers = ssl_method->num_ciphers();
if (num_of_ciphers > 0) {
- co_list = OPENSSL_malloc(sizeof(*co_list) * num_of_ciphers);
+ co_list = OPENSSL_malloc_array(num_of_ciphers, sizeof(*co_list));
if (co_list == NULL)
return NULL; /* Failure */
}
*/
num_of_group_aliases = OSSL_NELEM(cipher_aliases);
num_of_alias_max = num_of_ciphers + num_of_group_aliases + 1;
- ca_list = OPENSSL_malloc(sizeof(*ca_list) * num_of_alias_max);
+ ca_list = OPENSSL_malloc_array(num_of_alias_max, sizeof(*ca_list));
if (ca_list == NULL) {
OPENSSL_free(co_list);
return NULL; /* Failure */
if (dctx->mdevp != NULL)
return 1;
- mdevp = OPENSSL_zalloc(n * sizeof(*mdevp));
- mdord = OPENSSL_zalloc(n * sizeof(*mdord));
+ mdevp = OPENSSL_calloc(n, sizeof(*mdevp));
+ mdord = OPENSSL_calloc(n, sizeof(*mdord));
if (mdord == NULL || mdevp == NULL) {
OPENSSL_free(mdord);
uint8_t *mdord;
int n = ((int)mtype) + 1;
- mdevp = OPENSSL_realloc(dctx->mdevp, n * sizeof(*mdevp));
+ mdevp = OPENSSL_realloc_array(dctx->mdevp, n, sizeof(*mdevp));
if (mdevp == NULL)
return -1;
dctx->mdevp = mdevp;
- mdord = OPENSSL_realloc(dctx->mdord, n * sizeof(*mdord));
+ mdord = OPENSSL_realloc_array(dctx->mdord, n, sizeof(*mdord));
if (mdord == NULL)
return -1;
dctx->mdord = mdord;
*outlen = 0;
return 1;
}
- if ((present = OPENSSL_malloc(sizeof(*present) * num)) == NULL)
+ if ((present = OPENSSL_malloc_array(num, sizeof(*present))) == NULL)
return 0;
for (i = 0; i < sc->clienthello->pre_proc_exts_len; i++) {
ext = sc->clienthello->pre_proc_exts + i;
* slightly over allocate because we won't store those. But that isn't a
* problem.
*/
- raw = OPENSSL_malloc(numciphers * TLS_CIPHER_LEN);
+ raw = OPENSSL_malloc_array(numciphers, TLS_CIPHER_LEN);
s->s3.tmp.ciphers_raw = raw;
if (raw == NULL) {
SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_CRYPTO_LIB);
custom_ext_init(&s->cert->custext);
num_exts = OSSL_NELEM(ext_defs) + (exts != NULL ? exts->meths_count : 0);
- raw_extensions = OPENSSL_zalloc(num_exts * sizeof(*raw_extensions));
+ raw_extensions = OPENSSL_calloc(num_exts, sizeof(*raw_extensions));
if (raw_extensions == NULL) {
SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_CRYPTO_LIB);
return 0;
unsigned int group_id = 0;
/* Prepare memory to hold the extracted key share groups and related pubkeys */
- *keyshares_arr = OPENSSL_malloc(*keyshares_max * sizeof(**keyshares_arr));
+ *keyshares_arr = OPENSSL_malloc_array(*keyshares_max,
+ sizeof(**keyshares_arr));
if (*keyshares_arr == NULL) {
SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
goto failure;
}
- *encoded_pubkey_arr = OPENSSL_malloc(*keyshares_max * sizeof(**encoded_pubkey_arr));
+ *encoded_pubkey_arr = OPENSSL_malloc_array(*keyshares_max,
+ sizeof(**encoded_pubkey_arr));
if (*encoded_pubkey_arr == NULL) {
SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
goto failure;
if (*keyshares_cnt == *keyshares_max) {
PACKET *tmp_pkt;
uint16_t *tmp =
- OPENSSL_realloc(*keyshares_arr,
- (*keyshares_max + GROUPLIST_INCREMENT) * sizeof(**keyshares_arr));
+ OPENSSL_realloc_array(*keyshares_arr,
+ *keyshares_max + GROUPLIST_INCREMENT,
+ sizeof(**keyshares_arr));
if (tmp == NULL)
goto failure;
*keyshares_arr = tmp;
tmp_pkt =
- OPENSSL_realloc(*encoded_pubkey_arr,
- (*keyshares_max + GROUPLIST_INCREMENT) *
- sizeof(**encoded_pubkey_arr));
+ OPENSSL_realloc_array(*encoded_pubkey_arr,
+ *keyshares_max + GROUPLIST_INCREMENT,
+ sizeof(**encoded_pubkey_arr));
if (tmp_pkt == NULL)
goto failure;
*encoded_pubkey_arr = tmp_pkt;
if (s->s3.tmp.valid_flags != NULL)
memset(s->s3.tmp.valid_flags, 0, s->ssl_pkey_num * sizeof(uint32_t));
else
- s->s3.tmp.valid_flags = OPENSSL_zalloc(s->ssl_pkey_num * sizeof(uint32_t));
+ s->s3.tmp.valid_flags = OPENSSL_calloc(s->ssl_pkey_num, sizeof(uint32_t));
/* Give up for good if allocation didn't work */
if (s->s3.tmp.valid_flags == NULL)
TLS_GROUP_INFO *tmp = NULL;
if (ctx->group_list_max_len == 0)
- tmp = OPENSSL_malloc(sizeof(TLS_GROUP_INFO)
- * TLS_GROUP_LIST_MALLOC_BLOCK_SIZE);
+ tmp = OPENSSL_malloc_array(TLS_GROUP_LIST_MALLOC_BLOCK_SIZE,
+ sizeof(TLS_GROUP_INFO));
else
- tmp = OPENSSL_realloc(ctx->group_list,
- (ctx->group_list_max_len
- + TLS_GROUP_LIST_MALLOC_BLOCK_SIZE)
- * sizeof(TLS_GROUP_INFO));
+ tmp = OPENSSL_realloc_array(ctx->group_list,
+ ctx->group_list_max_len
+ + TLS_GROUP_LIST_MALLOC_BLOCK_SIZE,
+ sizeof(TLS_GROUP_INFO));
if (tmp == NULL)
return 0;
ctx->group_list = tmp;
TLS_SIGALG_INFO *tmp = NULL;
if (ctx->sigalg_list_max_len == 0)
- tmp = OPENSSL_malloc(sizeof(TLS_SIGALG_INFO)
- * TLS_SIGALG_LIST_MALLOC_BLOCK_SIZE);
+ tmp = OPENSSL_malloc_array(TLS_SIGALG_LIST_MALLOC_BLOCK_SIZE,
+ sizeof(TLS_SIGALG_INFO));
else
- tmp = OPENSSL_realloc(ctx->sigalg_list,
- (ctx->sigalg_list_max_len
- + TLS_SIGALG_LIST_MALLOC_BLOCK_SIZE)
- * sizeof(TLS_SIGALG_INFO));
+ tmp = OPENSSL_realloc_array(ctx->sigalg_list,
+ ctx->sigalg_list_max_len
+ + TLS_SIGALG_LIST_MALLOC_BLOCK_SIZE,
+ sizeof(TLS_SIGALG_INFO));
if (tmp == NULL)
return 0;
ctx->sigalg_list = tmp;
/* now populate ctx->ssl_cert_info */
if (ctx->sigalg_list_len > 0) {
OPENSSL_free(ctx->ssl_cert_info);
- ctx->ssl_cert_info = OPENSSL_zalloc(sizeof(lu) * ctx->sigalg_list_len);
+ ctx->ssl_cert_info = OPENSSL_calloc(ctx->sigalg_list_len, sizeof(lu));
if (ctx->ssl_cert_info == NULL)
return 0;
for(i = 0; i < ctx->sigalg_list_len; i++) {
ERR_raise(ERR_LIB_SSL, SSL_R_BAD_LENGTH);
return 0;
}
- if ((glist = OPENSSL_malloc(ngroups * sizeof(*glist))) == NULL)
+ if ((glist = OPENSSL_malloc_array(ngroups, sizeof(*glist))) == NULL)
goto err;
- if ((kslist = OPENSSL_malloc(1 * sizeof(*kslist))) == NULL)
+ if ((kslist = OPENSSL_malloc_array(1, sizeof(*kslist))) == NULL)
goto err;
- if ((tpllist = OPENSSL_malloc(1 * sizeof(*tpllist))) == NULL)
+ if ((tpllist = OPENSSL_malloc_array(1, sizeof(*tpllist))) == NULL)
goto err;
for (i = 0; i < ngroups; i++) {
unsigned long idmask;
/* Memory management in case more groups are present compared to initial allocation */
if (garg->gidcnt == garg->gidmax) {
uint16_t *tmp =
- OPENSSL_realloc(garg->gid_arr,
- (garg->gidmax + GROUPLIST_INCREMENT) * sizeof(*garg->gid_arr));
+ OPENSSL_realloc_array(garg->gid_arr,
+ garg->gidmax + GROUPLIST_INCREMENT,
+ sizeof(*garg->gid_arr));
if (tmp == NULL)
return 0;
/* Memory management for key share groups */
if (garg->ksidcnt == garg->ksidmax) {
uint16_t *tmp =
- OPENSSL_realloc(garg->ksid_arr,
- (garg->ksidmax + GROUPLIST_INCREMENT) * sizeof(*garg->ksid_arr));
+ OPENSSL_realloc_array(garg->ksid_arr,
+ garg->ksidmax + GROUPLIST_INCREMENT,
+ sizeof(*garg->ksid_arr));
if (tmp == NULL)
return 0;
/* Memory management for tuples */
if (garg->tplcnt == garg->tplmax) {
size_t *tmp =
- OPENSSL_realloc(garg->tuplcnt_arr,
- (garg->tplmax + GROUPLIST_INCREMENT) * sizeof(*garg->tuplcnt_arr));
+ OPENSSL_realloc_array(garg->tuplcnt_arr,
+ garg->tplmax + GROUPLIST_INCREMENT,
+ sizeof(*garg->tuplcnt_arr));
if (tmp == NULL)
return 0;
gcb.ctx = ctx;
/* Prepare initial chunks of memory for groups, tuples and keyshares groupIDs */
- gcb.gid_arr = OPENSSL_malloc(gcb.gidmax * sizeof(*gcb.gid_arr));
+ gcb.gid_arr = OPENSSL_malloc_array(gcb.gidmax, sizeof(*gcb.gid_arr));
if (gcb.gid_arr == NULL)
goto end;
- gcb.tuplcnt_arr = OPENSSL_malloc(gcb.tplmax * sizeof(*gcb.tuplcnt_arr));
+ gcb.tuplcnt_arr = OPENSSL_malloc_array(gcb.tplmax, sizeof(*gcb.tuplcnt_arr));
if (gcb.tuplcnt_arr == NULL)
goto end;
gcb.tuplcnt_arr[0] = 0;
- gcb.ksid_arr = OPENSSL_malloc(gcb.ksidmax * sizeof(*gcb.ksid_arr));
+ gcb.ksid_arr = OPENSSL_malloc_array(gcb.ksidmax, sizeof(*gcb.ksid_arr));
if (gcb.ksid_arr == NULL)
goto end;
sigalgs_len = OSSL_NELEM(sigalg_lookup_tbl) + ctx->sigalg_list_len;
- cache = OPENSSL_zalloc(sizeof(const SIGALG_LOOKUP) * sigalgs_len);
+ cache = OPENSSL_calloc(sigalgs_len, sizeof(const SIGALG_LOOKUP));
if (cache == NULL || tmpkey == NULL)
goto err;
- tls12_sigalgs_list = OPENSSL_zalloc(sizeof(uint16_t) * sigalgs_len);
+ tls12_sigalgs_list = OPENSSL_calloc(sigalgs_len, sizeof(uint16_t));
if (tls12_sigalgs_list == NULL)
goto err;
if (s->s3.tmp.valid_flags)
memset(s->s3.tmp.valid_flags, 0, s->ssl_pkey_num * sizeof(uint32_t));
else
- s->s3.tmp.valid_flags = OPENSSL_zalloc(s->ssl_pkey_num * sizeof(uint32_t));
+ s->s3.tmp.valid_flags = OPENSSL_calloc(s->ssl_pkey_num, sizeof(uint32_t));
if (s->s3.tmp.valid_flags == NULL)
return 0;
/*
}
nmatch = tls12_shared_sigalgs(s, NULL, pref, preflen, allow, allowlen);
if (nmatch) {
- if ((salgs = OPENSSL_malloc(nmatch * sizeof(*salgs))) == NULL)
+ if ((salgs = OPENSSL_malloc_array(nmatch, sizeof(*salgs))) == NULL)
return 0;
nmatch = tls12_shared_sigalgs(s, salgs, pref, preflen, allow, allowlen);
} else {
size >>= 1;
- if ((buf = OPENSSL_malloc(size * sizeof(*buf))) == NULL)
+ if ((buf = OPENSSL_malloc_array(size, sizeof(*buf))) == NULL)
return 0;
for (i = 0; i < size && PACKET_get_net_2(pkt, &stmp); i++)
buf[i] = stmp;
{
uint16_t *sigalgs;
- if ((sigalgs = OPENSSL_malloc(salglen * sizeof(*sigalgs))) == NULL)
+ if ((sigalgs = OPENSSL_malloc_array(salglen, sizeof(*sigalgs))) == NULL)
return 0;
memcpy(sigalgs, psigs, salglen * sizeof(*sigalgs));
if (salglen & 1)
return 0;
- if ((sigalgs = OPENSSL_malloc((salglen / 2) * sizeof(*sigalgs))) == NULL)
+ if ((sigalgs = OPENSSL_malloc_array(salglen / 2, sizeof(*sigalgs))) == NULL)
return 0;
for (i = 0, sptr = sigalgs; i < salglen; i += 2) {
size_t j;