crypto: qat - Remove VLA usage
In the quest to remove all stack VLA usage from the kernel[1], this uses the new upper bound for the stack buffer. Also adds a sanity check. [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
a9f7f88a12
commit
1299c9cfae
|
@ -153,8 +153,8 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash,
|
|||
struct sha512_state sha512;
|
||||
int block_size = crypto_shash_blocksize(ctx->hash_tfm);
|
||||
int digest_size = crypto_shash_digestsize(ctx->hash_tfm);
|
||||
char ipad[block_size];
|
||||
char opad[block_size];
|
||||
char ipad[MAX_ALGAPI_BLOCKSIZE];
|
||||
char opad[MAX_ALGAPI_BLOCKSIZE];
|
||||
__be32 *hash_state_out;
|
||||
__be64 *hash512_state_out;
|
||||
int i, offset;
|
||||
|
@ -164,6 +164,10 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash,
|
|||
shash->tfm = ctx->hash_tfm;
|
||||
shash->flags = 0x0;
|
||||
|
||||
if (WARN_ON(block_size > sizeof(ipad) ||
|
||||
sizeof(ipad) != sizeof(opad)))
|
||||
return -EINVAL;
|
||||
|
||||
if (auth_keylen > block_size) {
|
||||
int ret = crypto_shash_digest(shash, auth_key,
|
||||
auth_keylen, ipad);
|
||||
|
|
Loading…
Reference in New Issue