mirror of https://gitee.com/openkylin/linux.git
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fix from Herbert Xu: "This fixes a boundary condition in the blkcipher SG walking code that can lead to a crash when used with the new chacha20 algorithm" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: skcipher - Copy iv from desc even for 0-len walks
This commit is contained in:
commit
ca43444e43
|
@ -277,12 +277,12 @@ static int ablkcipher_walk_first(struct ablkcipher_request *req,
|
||||||
if (WARN_ON_ONCE(in_irq()))
|
if (WARN_ON_ONCE(in_irq()))
|
||||||
return -EDEADLK;
|
return -EDEADLK;
|
||||||
|
|
||||||
|
walk->iv = req->info;
|
||||||
walk->nbytes = walk->total;
|
walk->nbytes = walk->total;
|
||||||
if (unlikely(!walk->total))
|
if (unlikely(!walk->total))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
walk->iv_buffer = NULL;
|
walk->iv_buffer = NULL;
|
||||||
walk->iv = req->info;
|
|
||||||
if (unlikely(((unsigned long)walk->iv & alignmask))) {
|
if (unlikely(((unsigned long)walk->iv & alignmask))) {
|
||||||
int err = ablkcipher_copy_iv(walk, tfm, alignmask);
|
int err = ablkcipher_copy_iv(walk, tfm, alignmask);
|
||||||
|
|
||||||
|
|
|
@ -326,12 +326,12 @@ static int blkcipher_walk_first(struct blkcipher_desc *desc,
|
||||||
if (WARN_ON_ONCE(in_irq()))
|
if (WARN_ON_ONCE(in_irq()))
|
||||||
return -EDEADLK;
|
return -EDEADLK;
|
||||||
|
|
||||||
|
walk->iv = desc->info;
|
||||||
walk->nbytes = walk->total;
|
walk->nbytes = walk->total;
|
||||||
if (unlikely(!walk->total))
|
if (unlikely(!walk->total))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
walk->buffer = NULL;
|
walk->buffer = NULL;
|
||||||
walk->iv = desc->info;
|
|
||||||
if (unlikely(((unsigned long)walk->iv & walk->alignmask))) {
|
if (unlikely(((unsigned long)walk->iv & walk->alignmask))) {
|
||||||
int err = blkcipher_copy_iv(walk);
|
int err = blkcipher_copy_iv(walk);
|
||||||
if (err)
|
if (err)
|
||||||
|
|
Loading…
Reference in New Issue