lkml.org 
[lkml]   [2012]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] Remove VLAIS usage from crypto/testmgr.c
Quoting Behan Webster <behanw@converseincode.com>:

> From: Jan-Simon Möller <dl9pf@gmx.de>
>
> The use of variable length arrays in structs (VLAIS) in the Linux Kernel code
> precludes the use of compilers which don't implement VLAIS (for instance the
> Clang compiler). This patch instead allocates the appropriate amount
> of memory
> using an char array.
>
> Patch from series at
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142707.html
> by PaX Team.
>
> Signed-off-by: Jan-Simon Möller <dl9pf@gmx.de>
> Cc: pageexec@freemail.hu
> Signed-off-by: Behan Webster <behanw@converseincode.com>
> ---
> crypto/testmgr.c | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/crypto/testmgr.c b/crypto/testmgr.c
> index 941d75c..5b7b3a6 100644
> --- a/crypto/testmgr.c
> +++ b/crypto/testmgr.c
> @@ -1578,16 +1578,19 @@ static int alg_test_crc32c(const struct
> alg_test_desc *desc,
> }
>
> do {
> - struct {
> - struct shash_desc shash;
> - char ctx[crypto_shash_descsize(tfm)];
> - } sdesc;
> -
> - sdesc.shash.tfm = tfm;
> - sdesc.shash.flags = 0;
> -
> - *(u32 *)sdesc.ctx = le32_to_cpu(420553207);
> - err = crypto_shash_final(&sdesc.shash, (u8 *)&val);
> + char sdesc[sizeof(struct shash_desc)
> + + crypto_shash_descsize(tfm)
> + + CRYPTO_MINALIGN] CRYPTO_MINALIGN_ATTR;
> + struct shash_desc *shash = (struct shash_desc *)sdesc;
> + u32 *ctx = (u32 *)((unsigned long)(sdesc
> + + sizeof(struct shash_desc) + CRYPTO_MINALIGN - 1)
> + & ~(CRYPTO_MINALIGN - 1));

I think you should use '(u32 *)shash_desc_ctx(shash)' instead of
getting ctx pointer manually.

> +
> + shash->tfm = tfm;
> + shash->flags = 0;
> +
> + *ctx = le32_to_cpu(420553207);
> + err = crypto_shash_final(shash, (u8 *)&val);
> if (err) {
> printk(KERN_ERR "alg: crc32c: Operation failed for "
> "%s: %d\n", driver, err);



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2012-10-31 10:41    [W:0.055 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site