Commit bac1b5c4 authored by Herbert Xu's avatar Herbert Xu

crypto: blkcipher - Fix WARN_ON handling in walk_done

When we get left-over bits from a slow walk, it means that the
underlying cipher has gone troppo.  However, as we're handling
that case we should ensure that the caller terminates the walk.

This patch does this by setting walk->nbytes to zero.
Reported-by: default avatarRoel Kluin <roel.kluin@gmail.com>
Reported-by: default avatarHuang Ying <ying.huang@intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 29b37f42
...@@ -124,6 +124,7 @@ int blkcipher_walk_done(struct blkcipher_desc *desc, ...@@ -124,6 +124,7 @@ int blkcipher_walk_done(struct blkcipher_desc *desc,
scatterwalk_done(&walk->in, 0, nbytes); scatterwalk_done(&walk->in, 0, nbytes);
scatterwalk_done(&walk->out, 1, nbytes); scatterwalk_done(&walk->out, 1, nbytes);
err:
walk->total = nbytes; walk->total = nbytes;
walk->nbytes = nbytes; walk->nbytes = nbytes;
...@@ -132,7 +133,6 @@ int blkcipher_walk_done(struct blkcipher_desc *desc, ...@@ -132,7 +133,6 @@ int blkcipher_walk_done(struct blkcipher_desc *desc,
return blkcipher_walk_next(desc, walk); return blkcipher_walk_next(desc, walk);
} }
err:
if (walk->iv != desc->info) if (walk->iv != desc->info)
memcpy(desc->info, walk->iv, crypto_blkcipher_ivsize(tfm)); memcpy(desc->info, walk->iv, crypto_blkcipher_ivsize(tfm));
if (walk->buffer != walk->page) if (walk->buffer != walk->page)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment