.../crypto/inside-secure/eip93/eip93-hash.c | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-)
Don't populate the read-only arrays sha256_init, sha224_init, sha1_init
and md5_init on the stack at run time, instead make them static.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
.../crypto/inside-secure/eip93/eip93-hash.c | 20 +++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/crypto/inside-secure/eip93/eip93-hash.c b/drivers/crypto/inside-secure/eip93/eip93-hash.c
index 5e9627467a42..528d5bd864c9 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-hash.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-hash.c
@@ -97,12 +97,20 @@ void eip93_hash_handle_result(struct crypto_async_request *async, int err)
static void eip93_hash_init_sa_state_digest(u32 hash, u8 *digest)
{
- u32 sha256_init[] = { SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
- SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7 };
- u32 sha224_init[] = { SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
- SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7 };
- u32 sha1_init[] = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 };
- u32 md5_init[] = { MD5_H0, MD5_H1, MD5_H2, MD5_H3 };
+ static const u32 sha256_init[] = {
+ SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
+ SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7
+ };
+ static const u32 sha224_init[] = {
+ SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
+ SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7
+ };
+ static const u32 sha1_init[] = {
+ SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4
+ };
+ static const u32 md5_init[] = {
+ MD5_H0, MD5_H1, MD5_H2, MD5_H3
+ };
/* Init HASH constant */
switch (hash) {
--
2.49.0
On Wed, Apr 02, 2025 at 12:13:47PM +0100, Colin Ian King wrote: > Don't populate the read-only arrays sha256_init, sha224_init, sha1_init > and md5_init on the stack at run time, instead make them static. > > Signed-off-by: Colin Ian King <colin.i.king@gmail.com> > --- > .../crypto/inside-secure/eip93/eip93-hash.c | 20 +++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) Patch applied. Thanks. -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Quoting Colin Ian King (2025-04-02 13:13:47) > Don't populate the read-only arrays sha256_init, sha224_init, sha1_init > and md5_init on the stack at run time, instead make them static. > > Signed-off-by: Colin Ian King <colin.i.king@gmail.com> Reviewed-by: Antoine Tenart <atenart@kernel.org> Thanks! > --- > .../crypto/inside-secure/eip93/eip93-hash.c | 20 +++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/drivers/crypto/inside-secure/eip93/eip93-hash.c b/drivers/crypto/inside-secure/eip93/eip93-hash.c > index 5e9627467a42..528d5bd864c9 100644 > --- a/drivers/crypto/inside-secure/eip93/eip93-hash.c > +++ b/drivers/crypto/inside-secure/eip93/eip93-hash.c > @@ -97,12 +97,20 @@ void eip93_hash_handle_result(struct crypto_async_request *async, int err) > > static void eip93_hash_init_sa_state_digest(u32 hash, u8 *digest) > { > - u32 sha256_init[] = { SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3, > - SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7 }; > - u32 sha224_init[] = { SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3, > - SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7 }; > - u32 sha1_init[] = { SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 }; > - u32 md5_init[] = { MD5_H0, MD5_H1, MD5_H2, MD5_H3 }; > + static const u32 sha256_init[] = { > + SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3, > + SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7 > + }; > + static const u32 sha224_init[] = { > + SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3, > + SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7 > + }; > + static const u32 sha1_init[] = { > + SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4 > + }; > + static const u32 md5_init[] = { > + MD5_H0, MD5_H1, MD5_H2, MD5_H3 > + }; > > /* Init HASH constant */ > switch (hash) { > -- > 2.49.0 >
© 2016 - 2025 Red Hat, Inc.