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_cipher *tfm = ctx->child;
|
||||
int bs = crypto_hash_blocksize(parent);
|
||||
unsigned int i = 0;
|
||||
|
||||
do {
|
||||
|
||||
struct page *pg = sg_page(&sg[i]);
|
||||
unsigned int offset = sg[i].offset;
|
||||
unsigned int slen = sg[i].length;
|
||||
for (;;) {
|
||||
struct page *pg = sg_page(sg);
|
||||
unsigned int offset = sg->offset;
|
||||
unsigned int slen = sg->length;
|
||||
|
||||
if (unlikely(slen > nbytes))
|
||||
slen = nbytes;
|
||||
|
@ -182,8 +180,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc,
|
|||
offset = 0;
|
||||
pg++;
|
||||
}
|
||||
i++;
|
||||
} while (nbytes>0);
|
||||
|
||||
if (!nbytes)
|
||||
break;
|
||||
sg = scatterwalk_sg_next(sg);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue