Commit 9d853c3757ef74ded5ae564d68370f22208fb88b

Authored by Herbert Xu
Committed by David S. Miller
1 parent ba460e4806

[CRYPTO]: Fix zero-extension bug on 64-bit architectures.

Noticed by Ken-ichirou MATSUZAWA.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 2 changed files with 4 additions and 4 deletions Side-by-side Diff

... ... @@ -41,7 +41,7 @@
41 41 struct scatter_walk *in,
42 42 struct scatter_walk *out, unsigned int bsize)
43 43 {
44   - unsigned int alignmask = crypto_tfm_alg_alignmask(desc->tfm);
  44 + unsigned long alignmask = crypto_tfm_alg_alignmask(desc->tfm);
45 45 u8 buffer[bsize * 2 + alignmask];
46 46 u8 *src = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
47 47 u8 *dst = src + bsize;
... ... @@ -160,7 +160,7 @@
160 160 unsigned int nbytes)
161 161 {
162 162 struct crypto_tfm *tfm = desc->tfm;
163   - unsigned int alignmask = crypto_tfm_alg_alignmask(tfm);
  163 + unsigned long alignmask = crypto_tfm_alg_alignmask(tfm);
164 164 u8 *iv = desc->info;
165 165  
166 166 if (unlikely(((unsigned long)iv & alignmask))) {
... ... @@ -424,7 +424,7 @@
424 424 }
425 425  
426 426 if (ops->cit_mode == CRYPTO_TFM_MODE_CBC) {
427   - unsigned int align;
  427 + unsigned long align;
428 428 unsigned long addr;
429 429  
430 430 switch (crypto_tfm_alg_blocksize(tfm)) {
... ... @@ -75,7 +75,7 @@
75 75  
76 76 switch (flags & CRYPTO_TFM_MODE_MASK) {
77 77 case CRYPTO_TFM_MODE_CBC:
78   - len = ALIGN(len, alg->cra_alignmask + 1);
  78 + len = ALIGN(len, (unsigned long)alg->cra_alignmask + 1);
79 79 len += alg->cra_blocksize;
80 80 break;
81 81 }