Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: [CRYPTO] xcbc: Fix crash when ipsec uses xcbc-mac with big data chunk
This commit is contained in:
commit
8774b7f63b
1 changed files with 9 additions and 8 deletions
|
@ -116,13 +116,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc,
|
||||||
struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent);
|
struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent);
|
||||||
struct crypto_cipher *tfm = ctx->child;
|
struct crypto_cipher *tfm = ctx->child;
|
||||||
int bs = crypto_hash_blocksize(parent);
|
int bs = crypto_hash_blocksize(parent);
|
||||||
unsigned int i = 0;
|
|
||||||
|
|
||||||
do {
|
for (;;) {
|
||||||
|
struct page *pg = sg_page(sg);
|
||||||
struct page *pg = sg_page(&sg[i]);
|
unsigned int offset = sg->offset;
|
||||||
unsigned int offset = sg[i].offset;
|
unsigned int slen = sg->length;
|
||||||
unsigned int slen = sg[i].length;
|
|
||||||
|
|
||||||
if (unlikely(slen > nbytes))
|
if (unlikely(slen > nbytes))
|
||||||
slen = nbytes;
|
slen = nbytes;
|
||||||
|
@ -182,8 +180,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc,
|
||||||
offset = 0;
|
offset = 0;
|
||||||
pg++;
|
pg++;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
} while (nbytes>0);
|
if (!nbytes)
|
||||||
|
break;
|
||||||
|
sg = scatterwalk_sg_next(sg);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue