|
@@ -76,8 +76,9 @@ static int shash_update_unaligned(struct shash_desc *desc, const u8 *data,
|
|
|
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
|
|
unsigned int unaligned_len = alignmask + 1 -
|
|
|
((unsigned long)data & alignmask);
|
|
|
- u8 buf[shash_align_buffer_size(unaligned_len, alignmask)]
|
|
|
+ u8 ubuf[shash_align_buffer_size(unaligned_len, alignmask)]
|
|
|
__attribute__ ((aligned));
|
|
|
+ u8 *buf = PTR_ALIGN(&ubuf[0], alignmask + 1);
|
|
|
int err;
|
|
|
|
|
|
if (unaligned_len > len)
|
|
@@ -111,8 +112,9 @@ static int shash_final_unaligned(struct shash_desc *desc, u8 *out)
|
|
|
unsigned long alignmask = crypto_shash_alignmask(tfm);
|
|
|
struct shash_alg *shash = crypto_shash_alg(tfm);
|
|
|
unsigned int ds = crypto_shash_digestsize(tfm);
|
|
|
- u8 buf[shash_align_buffer_size(ds, alignmask)]
|
|
|
+ u8 ubuf[shash_align_buffer_size(ds, alignmask)]
|
|
|
__attribute__ ((aligned));
|
|
|
+ u8 *buf = PTR_ALIGN(&ubuf[0], alignmask + 1);
|
|
|
int err;
|
|
|
|
|
|
err = shash->final(desc, buf);
|