diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:33:19 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:33:19 -0500 |
commit | ec1248e70edc5cf7b485efcc7b41e44e10f422e5 (patch) | |
tree | 80ca10a1ad9dc572e131a56a93fcf0c63c14d168 /crypto/api.c | |
parent | 3d1f337b3e7378923c89f37afb573a918ef40be5 (diff) | |
parent | 55e9dce37ddf3ab358ba1d1e9eef4ee4bd8174a6 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6:
[CRYPTO] aes: Fixed array boundary violation
[CRYPTO] tcrypt: Fix key alignment
[CRYPTO] all: Add missing cra_alignmask
[CRYPTO] all: Use kzalloc where possible
[CRYPTO] api: Align tfm context as wide as possible
[CRYPTO] twofish: Use rol32/ror32 where appropriate
Diffstat (limited to 'crypto/api.c')
-rw-r--r-- | crypto/api.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/crypto/api.c b/crypto/api.c index e26156f71839..80bba637fba7 100644 --- a/crypto/api.c +++ b/crypto/api.c | |||
@@ -165,7 +165,7 @@ static unsigned int crypto_ctxsize(struct crypto_alg *alg, int flags) | |||
165 | break; | 165 | break; |
166 | } | 166 | } |
167 | 167 | ||
168 | return len + alg->cra_alignmask; | 168 | return len + (alg->cra_alignmask & ~(crypto_tfm_ctx_alignment() - 1)); |
169 | } | 169 | } |
170 | 170 | ||
171 | struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) | 171 | struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) |
@@ -179,12 +179,10 @@ struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) | |||
179 | goto out; | 179 | goto out; |
180 | 180 | ||
181 | tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, flags); | 181 | tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, flags); |
182 | tfm = kmalloc(tfm_size, GFP_KERNEL); | 182 | tfm = kzalloc(tfm_size, GFP_KERNEL); |
183 | if (tfm == NULL) | 183 | if (tfm == NULL) |
184 | goto out_put; | 184 | goto out_put; |
185 | 185 | ||
186 | memset(tfm, 0, tfm_size); | ||
187 | |||
188 | tfm->__crt_alg = alg; | 186 | tfm->__crt_alg = alg; |
189 | 187 | ||
190 | if (crypto_init_flags(tfm, flags)) | 188 | if (crypto_init_flags(tfm, flags)) |