|
@@ -47,8 +47,11 @@ static int hash_walk_next(struct crypto_hash_walk *walk)
|
|
walk->data = crypto_kmap(walk->pg, 0);
|
|
walk->data = crypto_kmap(walk->pg, 0);
|
|
walk->data += offset;
|
|
walk->data += offset;
|
|
|
|
|
|
- if (offset & alignmask)
|
|
|
|
- nbytes = alignmask + 1 - (offset & alignmask);
|
|
|
|
|
|
+ if (offset & alignmask) {
|
|
|
|
+ unsigned int unaligned = alignmask + 1 - (offset & alignmask);
|
|
|
|
+ if (nbytes > unaligned)
|
|
|
|
+ nbytes = unaligned;
|
|
|
|
+ }
|
|
|
|
|
|
walk->entrylen -= nbytes;
|
|
walk->entrylen -= nbytes;
|
|
return nbytes;
|
|
return nbytes;
|