Messages in this thread | | | Date | Wed, 31 Oct 2012 10:45:20 +0200 | From | Jussi Kivilinna <> | Subject | Re: [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/
| |