diff options
author | Salvatore Mesoraca <s.mesoraca16@gmail.com> | 2018-04-09 09:54:47 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-04-20 12:58:34 -0400 |
commit | 6650c4de681ee90ea6da1fc34fb913f60e9bb008 (patch) | |
tree | 6b0aad6025f677271fa95e979ddb04d5083463e1 /crypto/cfb.c | |
parent | 13c935bb09948aef0202574ee12bb089459eb43b (diff) |
crypto: remove several VLAs
We avoid various VLAs[1] by using constant expressions for block size
and alignment mask.
[1] http://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
Signed-off-by: Salvatore Mesoraca <s.mesoraca16@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/cfb.c')
-rw-r--r-- | crypto/cfb.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crypto/cfb.c b/crypto/cfb.c index 94ee39bed758..a0d68c09e1b9 100644 --- a/crypto/cfb.c +++ b/crypto/cfb.c | |||
@@ -53,9 +53,8 @@ static void crypto_cfb_encrypt_one(struct crypto_skcipher *tfm, | |||
53 | static void crypto_cfb_final(struct skcipher_walk *walk, | 53 | static void crypto_cfb_final(struct skcipher_walk *walk, |
54 | struct crypto_skcipher *tfm) | 54 | struct crypto_skcipher *tfm) |
55 | { | 55 | { |
56 | const unsigned int bsize = crypto_cfb_bsize(tfm); | ||
57 | const unsigned long alignmask = crypto_skcipher_alignmask(tfm); | 56 | const unsigned long alignmask = crypto_skcipher_alignmask(tfm); |
58 | u8 tmp[bsize + alignmask]; | 57 | u8 tmp[MAX_CIPHER_BLOCKSIZE + MAX_CIPHER_ALIGNMASK]; |
59 | u8 *stream = PTR_ALIGN(tmp + 0, alignmask + 1); | 58 | u8 *stream = PTR_ALIGN(tmp + 0, alignmask + 1); |
60 | u8 *src = walk->src.virt.addr; | 59 | u8 *src = walk->src.virt.addr; |
61 | u8 *dst = walk->dst.virt.addr; | 60 | u8 *dst = walk->dst.virt.addr; |
@@ -94,7 +93,7 @@ static int crypto_cfb_encrypt_inplace(struct skcipher_walk *walk, | |||
94 | unsigned int nbytes = walk->nbytes; | 93 | unsigned int nbytes = walk->nbytes; |
95 | u8 *src = walk->src.virt.addr; | 94 | u8 *src = walk->src.virt.addr; |
96 | u8 *iv = walk->iv; | 95 | u8 *iv = walk->iv; |
97 | u8 tmp[bsize]; | 96 | u8 tmp[MAX_CIPHER_BLOCKSIZE]; |
98 | 97 | ||
99 | do { | 98 | do { |
100 | crypto_cfb_encrypt_one(tfm, iv, tmp); | 99 | crypto_cfb_encrypt_one(tfm, iv, tmp); |
@@ -164,7 +163,7 @@ static int crypto_cfb_decrypt_inplace(struct skcipher_walk *walk, | |||
164 | unsigned int nbytes = walk->nbytes; | 163 | unsigned int nbytes = walk->nbytes; |
165 | u8 *src = walk->src.virt.addr; | 164 | u8 *src = walk->src.virt.addr; |
166 | u8 *iv = walk->iv; | 165 | u8 *iv = walk->iv; |
167 | u8 tmp[bsize]; | 166 | u8 tmp[MAX_CIPHER_BLOCKSIZE]; |
168 | 167 | ||
169 | do { | 168 | do { |
170 | crypto_cfb_encrypt_one(tfm, iv, tmp); | 169 | crypto_cfb_encrypt_one(tfm, iv, tmp); |