}
if (src->key != NULL) {
/* There is no "secure" OPENSSL_memdup */
- dst->key = OPENSSL_secure_malloc(src->keylen);
+ dst->key = OPENSSL_secure_malloc(src->keylen > 0 ? src->keylen : 1);
if (dst->key == NULL) {
hmac_free(dst);
return 0;
if (macctx->keylen > 0)
OPENSSL_secure_clear_free(macctx->key, macctx->keylen);
/* Keep a copy of the key if we need it for TLS HMAC */
- macctx->key = OPENSSL_secure_malloc(p->data_size);
+ macctx->key = OPENSSL_secure_malloc(p->data_size > 0 ? p->data_size : 1);
if (macctx->key == NULL)
return 0;
memcpy(macctx->key, p->data, p->data_size);