[RFC] SHASH_DESC_ON_STACK macro
From: Gustavo A. R. Silva
Date: Wed Mar 21 2018 - 11:08:15 EST
Hi Herbert,
There is an ongoing effort to remove all VLAs from the code base [1] and
while working on that I came across the following macro at
include/crypto/hash.h:154:
#define SHASH_DESC_ON_STACK(shash, ctx) \
char __##shash##_desc[sizeof(struct shash_desc) + \
crypto_shash_descsize(ctx)] CRYPTO_MINALIGN_ATTR; \
struct shash_desc *shash = (struct shash_desc *)__##shash##_desc
Currently, this macro is being used in 46 different places.
I wonder how big can tfm->descsize can get?
Do you think it is feasible to replace the call to crypto_shash_descsize
with a constant value and get rid of 46 VLA warnings?
I have sent some patches to replace the use of this macro with dynamic
memory allocation instead, but it seems that this is not a suitable
solution for all cases due to performance issues.
[1] https://lkml.org/lkml/2018/3/7/621
I'd really appreciate any feedback.
Thanks
--
Gustavo