[RESEND] SHASH_DESC_ON_STACK macro

From: Gustavo A. R. Silva
Date: Fri Mar 23 2018 - 15:09:54 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