|
Message-ID: <ca31b95a8b8e4dab90c5ea2eb6e6477f@AcuMS.aculab.com> Date: Mon, 9 Apr 2018 14:35:50 +0000 From: David Laight <David.Laight@...LAB.COM> To: 'Salvatore Mesoraca' <s.mesoraca16@...il.com>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> CC: "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>, "linux-crypto@...r.kernel.org" <linux-crypto@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>, Herbert Xu <herbert@...dor.apana.org.au>, Kees Cook <keescook@...omium.org>, Eric Biggers <ebiggers3@...il.com>, Laura Abbott <labbott@...hat.com> Subject: RE: [PATCH v2 0/2] crypto: removing various VLAs From: Salvatore Mesoraca > Sent: 09 April 2018 14:55 > > v2: > As suggested by Herbert Xu, the blocksize and alignmask checks > have been moved to crypto_check_alg. > So, now, all the other separate checks are not necessary. > Also, the defines have been moved to include/crypto/algapi.h. > > v1: > As suggested by Laura Abbott[1], I'm resending my patch with > MAX_BLOCKSIZE and MAX_ALIGNMASK defined in an header, so they > can be used in other places. > I took this opportunity to deal with some other VLAs not > handled in the old patch. If the constants are visible they need better names. Maybe CRYPTO_MAX_xxx. You can also do much better than allocating MAX_BLOCKSIZE + MAX_ALIGNMASK bytes by requesting 'long' aligned on-stack memory. The easiest way is to define a union like: union crypto_tmp { u8 buf[CRYPTO_MAX_TMP_BUF]; long buf_align; }; Then in each function: union tmp crypto_tmp; u8 *keystream = PTR_ALIGN(tmp.buf, alignmask + 1); I think CRYPTO_MAX_TMP_BUF needs to be MAX_BLOCKSIZE + MAX_ALIGNMASK - sizeof (long). David
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.