aboutsummaryrefslogtreecommitdiff
path: root/sys/opencrypto
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>2008-10-30 16:11:07 +0000
committerDoug Rabson <dfr@FreeBSD.org>2008-10-30 16:11:07 +0000
commitbfd50e2732c722abb6e847a15a75e1f4a04cdf99 (patch)
treec1d17f59cfd3b094ada6d5a36e6b6c4f0b3cbf94 /sys/opencrypto
parent014186973a878597d8ed7f51429ee4309b917f97 (diff)
downloadsrc-bfd50e2732c722abb6e847a15a75e1f4a04cdf99.tar.gz
src-bfd50e2732c722abb6e847a15a75e1f4a04cdf99.zip
Don't hang if encrypting/decrypting using struct iovecs where one of the
iovecs ends on a crypto block boundary.
Notes
Notes: svn path=/head/; revision=184477
Diffstat (limited to 'sys/opencrypto')
-rw-r--r--sys/opencrypto/cryptosoft.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/opencrypto/cryptosoft.c b/sys/opencrypto/cryptosoft.c
index d115dbc354b2..6a802a1f062c 100644
--- a/sys/opencrypto/cryptosoft.c
+++ b/sys/opencrypto/cryptosoft.c
@@ -352,6 +352,10 @@ swcr_encdec(struct cryptodesc *crd, struct swcr_data *sw, caddr_t buf,
k += blks;
i -= blks;
}
+ if (k == iov->iov_len) {
+ iov++;
+ k = 0;
+ }
}
return 0; /* Done with iovec encryption/decryption */