diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2010-03-05 16:42:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-06 14:26:28 -0500 |
commit | cda1c5af26a00ee31cdc5ab8321a1be7851cbfff (patch) | |
tree | 780496d48b6d779dc7cae7e76866e6caa2992bf8 | |
parent | ba875ba6b7cd28c5f15680ed694276510aa69970 (diff) |
cryptocop: fix assertion in create_output_descriptors()
size_t desc_len cannot be less than 0, test before the subtraction.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/cris/arch-v32/drivers/cryptocop.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/cris/arch-v32/drivers/cryptocop.c b/arch/cris/arch-v32/drivers/cryptocop.c index fd529a0ec758..b70fb34939d9 100644 --- a/arch/cris/arch-v32/drivers/cryptocop.c +++ b/arch/cris/arch-v32/drivers/cryptocop.c | |||
@@ -628,9 +628,9 @@ static int create_output_descriptors(struct cryptocop_operation *operation, int | |||
628 | cdesc->dma_descr->buf = (char*)virt_to_phys(operation->tfrm_op.indata[*iniov_ix].iov_base + *iniov_offset); | 628 | cdesc->dma_descr->buf = (char*)virt_to_phys(operation->tfrm_op.indata[*iniov_ix].iov_base + *iniov_offset); |
629 | cdesc->dma_descr->after = cdesc->dma_descr->buf + dlength; | 629 | cdesc->dma_descr->after = cdesc->dma_descr->buf + dlength; |
630 | 630 | ||
631 | assert(desc_len >= dlength); | ||
631 | desc_len -= dlength; | 632 | desc_len -= dlength; |
632 | *iniov_offset += dlength; | 633 | *iniov_offset += dlength; |
633 | assert(desc_len >= 0); | ||
634 | if (*iniov_offset >= operation->tfrm_op.indata[*iniov_ix].iov_len) { | 634 | if (*iniov_offset >= operation->tfrm_op.indata[*iniov_ix].iov_len) { |
635 | *iniov_offset = 0; | 635 | *iniov_offset = 0; |
636 | ++(*iniov_ix); | 636 | ++(*iniov_ix); |